Подключение пользовательского драйвера

Выбор рабочего драйвера происходит на момент подключения файла mysql.php . Чтобы указать системе, что требуется использовать какой-либо другой драйвер, помимо или вместо стандартного, необходимо определить константу с именем DB_DRIVER, значением которой является имя драйвера, например вот так:

define('DB_DRIVER', 'xml');

. Имя драйвера соответствует имени папки внутри /classes/drivers, в которой будет искаться файл config.php с настройками конкретного драйвера (в данном случае, это будет файл /classes/drivers/xml/config.php). В этом файле происходит переопределение путей к основным системным файлам, а также подключаются дополнительные файлы, необходимые для работы драйвера. Переопределение пути к системному файлу происходит через ассоциативный массив $includes (аналогично основному файлу конфигурации config.php, находящемуся в корне), где ключ - имя класса, содержащегося в файле, а значение - массив из пути к определению интерфейса, и пути к реализации, например:

$includes['umiHierarchyElement'] = array('./путь/к/интерфейсу/iUmiHierarchyElement.php', './путь/к/реализации/umiHierarchyElement.php');

Таким образом, измененные вами файлы вы можете поместить куда угодно, и система их найдет, если вы правильно укажете путь. Хорошей практикой является размещение файлов внутри папки с конфигурационным файлом драйвера с сохранением локальной структуры папок (то есть dataModel, hierarchyModel и т.п.) . За примерами реализации вы можете обратиться к существующему коду.