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

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


limb3_2007_3:ru:packages:dbal

Пакет DBAL

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

На момент релиза 2007.3 пакет DBAL поддерживает следующие базы данных: MySQL, Postgres, SQLite и Oracle.

Некоторые задают нам вопрос по поводу того, почему мы не используем 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_2007_3/ru/packages/dbal.txt · Последние изменения: 2010/11/10 10:02 (внешнее изменение)