====== Пакет DBAL ====== Пакет DBAL - это Data Base Abstraction Layer, то есть уровень абстрагирования от базы данных. При помощи DBAL классов клиентский код работает с базой данных, не зная, какой именно драйвер базы данных (MySQL, Oracle и т.д.) используется в данных момент. Пакет DBAL зависит от следующих пакетов: core, toolkit, classkit, wact (часть, касающаяся db), config, net. В качестве основы для DBAL-а используется слегка адаптированный порт от DBAL из WACT-а, так как он является достаточно абстрактным и легко расширяемым. Также в рамках данного пакета были реализованы средства для создания подключений к базе данных, средства для работы сразу с несколькими базами данных, а также некоторые дополнительные классы, облегчающие тестирование и способствующие снижению дублирования и повышения уровня повторного использования кода: ^Группа классов^Назначение^ |[[.dbal:Driver|Driver]]|Драйвер (Driver) - базовые классы для работы с базами данных, которые абстрагируют доступ к базе данных.| |[[.dbal:Connection|Connection]]|Группа классов, используемых для создания и хранения подключений к базе данных.| |[[.dbal:Query|Query]]|Группа классов, позволяющих тем или иным образом инкапсулировать SQL запросы.| |[[.dbal:Criteria|Criteria]]|Группа классов, позволяющих строить условия для инкапсулированных SQL запросов.| |[[.dbal:QueryModifier|QueryModifier]]|Группа классов, позволяющих инкапсулировать код, который модифицирует запросы [[.dbal:Query|Query]]. Позволяет увеличить уровень повторного использования кода.| |[[.dbal:lmbTableGateway|lmbTableGateway]]|Класс, упрощающий работу с отдельными таблицами базы данных.|