Как реализовать расширение классов библиотеки? Фреймворк Kohana имеет следующий механизм расширения классов:
Основной файл, содержащий код класса, kohana/classes/Kohana_Test.php:class Kohana_Test
{
public function __construct()
{
echo 'kohana/classes/Kohana_Test.php';
}
}
Переопределенный в приложении класс, app/classes/Test.php:class Test extends Kohana_Test {
public function __construct()
{
echo 'app/classes/Test.php';
}
}
Класс - "пустышка", используется когда класс не переопределен, kohana/classes/Test.php:class Test extends Kohana_Test
{
}
Такой подход позволяет изменять класс Test без лишних правок в файлах использующих его:$obj = new Test; // 'app/classes/Test.php'
Есть ли аналоги для данного механизма, позволяющие избавиться от классов - "пустышек"?
Как добиться подобного эффекта при использовании например фреймворка Zend?

21 Авг 2019 в 07:08
331 +1
0
Ответы
1

В фреймворке 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

Таким образом, вы можете использовать автозагрузчик для загрузки классов из различных директорий в зависимости от условий, что позволит избежать создания "пустышек" классов.

20 Апр в 13:06
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 548 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир