Инструменты пользователя

Инструменты сайта


limb3:ru:packages:dbal

Пакет DBAL

Пакет DBAL(Data Base Abstraction Layer) предоставляет объектно-ориентированный доступ к базе данных, абстрагируясь от деталей конкретной реализации базы данных.

В данный момент пакет DBAL поддерживает следующие базы данных: MySQL 4.1+, SQLite, Oracle (OCI8), PostgreSQL 8.2+, Linter

Некоторые задают нам вопрос по поводу того, почему мы не используем PHP-расширение PDO?

  • Во-первых, PDO не предоставляет средств для получения meta-информации о структуре базы данных, а эта возможность активно у нас используется в пакете ACTIVE_RECORD.
  • Ну, а во-вторых, текущее состояние PDO драйвера оставляет желать лучшего: не поддерживаются многие драйвера, нативные драйвера зачастую работают быстрее и предоставляют большие возможности по контролю работы с БД.

Использование пакета DBAL

Архитектура пакета DBAL

Пакет DBAL зависит от следующих пакетов: CORE, TOOLKIT, CONFIG.

Пакет DBAL состоит из нескольких групп классов или подсистем:

Группа классовНазначение
DriverДрайвер (Driver) - базовые классы для работы с базами данных, которые абстрагируют доступ к базе данных. При помощи них осуществляются операции выборки и изменения состояния базы данных (select, update, insert, delete и т.д.).
QueryГруппа классов, позволяющих тем или иным образом инкапсулировать SQL запросы.
CriteriaГруппа классов, позволяющих строить условия для инкапсулированных SQL запросов.
DumpГруппа классов, используемых для загрузки sql-дампов. см. Загрузка sql-дампов.

Также есть набор дополнительных классов:

Группа классовНазначение
lmbDBALФасад для DBAL-пакета.
lmbTableGatewayКласс, упрощающий работу с отдельными таблицами базы данных.
lmbSimpleDbНебольшой фасад для пакета. Позволяет выполнять простейшие CRUD запросы. Используется в основном с тестах
lmbDbToolsTools для работы с базой данных. Автоматически добавляется в lmbToolkit при включении файла limb/dbal/common.inc.php
lmbDbDumpНебольшой фасад для Dump-подсистемы пакета. Позволяет загружать sql-дамп и очищать таблицы, затронутые этим дампом. см. Загрузка sql-дампов.
lmbAutoTransactionFilterФильтр, который вставляется в общую цепочку фильтров приложения, и который автоматически стартует транзакцию базы данных при первом запроса на изменение состояния базы данных. см. Поддержка транзакций.
lmbDbExceptionКласс исключения, которые могут быть сгенерированы классами пакета DBAL.

Обсуждение

Ваш комментарий. Вики-синтаксис разрешён:
  _      __  ____    __ __   __ __   ____
 | | /| / / / __ \  / //_/  / //_/  / __/
 | |/ |/ / / /_/ / / ,<    / ,<    / _/  
 |__/|__/  \___\_\/_/|_|  /_/|_|  /___/
 
limb3/ru/packages/dbal.txt · Последние изменения: 2010/11/10 10:02 (внешнее изменение)