Содержание

Пакет DBAL

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

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

Некоторые задают нам вопрос по поводу того, почему мы не используем PHP-расширение 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.