Выбор рабочего драйвера происходит на момент подключения файла 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 и т.п.) . За примерами реализации вы можете обратиться к существующему коду.