Как реализовать расширение классов библиотеки? Фреймворк Kohana имеет следующий механизм расширения классов: Основной файл, содержащий код класса, kohana/classes/Kohana_Test.php:
В фреймворке Zend Framework можно достичь подобного эффекта с помощью функции spl_autoload_register() для подключения автозагрузчика классов. Например, вы можете создать автозагрузчик, который будет искать классы в определенных директориях, и если класс не найден в приложении, он будет загружать его из библиотеки.
Пример автозагрузчика для Zend Framework:
function my_autoloader($class) { if (file_exists('app/classes/' . $class . '.php')) { include 'app/classes/' . $class . '.php'; } elseif (file_exists('kohana/classes/' . $class . '.php')) { include 'kohana/classes/' . $class . '.php'; } } spl_autoload_register('my_autoloader'); $obj = new Test; // если класс Test не переопределен в приложении, будет загружен из kohana/classes/Test.php
Таким образом, вы можете использовать автозагрузчик для загрузки классов из различных директорий в зависимости от условий, что позволит избежать создания "пустышек" классов.
В фреймворке Zend Framework можно достичь подобного эффекта с помощью функции spl_autoload_register() для подключения автозагрузчика классов. Например, вы можете создать автозагрузчик, который будет искать классы в определенных директориях, и если класс не найден в приложении, он будет загружать его из библиотеки.
Пример автозагрузчика для Zend Framework:
function my_autoloader($class) {if (file_exists('app/classes/' . $class . '.php')) {
include 'app/classes/' . $class . '.php';
} elseif (file_exists('kohana/classes/' . $class . '.php')) {
include 'kohana/classes/' . $class . '.php';
}
}
spl_autoload_register('my_autoloader');
$obj = new Test; // если класс Test не переопределен в приложении, будет загружен из kohana/classes/Test.php
Таким образом, вы можете использовать автозагрузчик для загрузки классов из различных директорий в зависимости от условий, что позволит избежать создания "пустышек" классов.