Как-то медитируя на свой новый велосипед подумал, – А почему бы не заложить в него возможность «плагинизации» контроллеров?
Чтобы вот был, например, у нас некий базовый класс
Generic.php:
<?php
class Generic
{
public function Hello() {
echo 'Hello!';
}
}
?>
А мы такие взяли и повешали бы на него пару плагинов, которые дополнят/изменят какие-либо его методы не мешая друг-другу (по принципу «кто первый встал – того и тапки»).
Вот они красавцы:
PluginFoo.php:
<?php
class PluginFoo extends Generic_PluginFoo
{
public function Hello() {
echo 'Dudes?<br />';
parent::Hello();
}
}
?>
и
PluginBar.php:
<?php
class PluginBar extends Generic_PluginBar
{
public function Hello() {
parent::Hello();
echo '<br />O.o';
}
}
?>
А потом мы создали бы
объект родительского класса (не обращаясь к последнему потомку), вызвали метод Hello() и тот сказал бы нам:
Dudes?
Hello!
O.o
Ниже лаконичный вариант того как описанного поведения добился
ort в своём
LiveStreet, а затем уже и я в своём собственном велосипеде.