Фреймворк Kohana имеет следующий механизм расширения классов:
Основной файл, содержащий код класса, kohana/classes/Kohana_Test.php:
<?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?