Код: Выделить всё
class Alpha extends Controller
{
public function actionOne()
{
...
}
public function actionTwo()
{
...
}
}
class Beta extends Alpha
{
public function actionThree()
{
...
}
}
Если открыть страницу "/beta/one", то выполнится действие "actionOne".
Но есть нюанс. Для обработки действия будет создан объект контроллера класса Alpha, а не класса Beta. То есть, если у Beta, например, есть конструктор, он даже не будет вызван. Пути к вьюшкам тоже будут отсчитываться от Alpha.
Вопросы:
1. Так задумано, или это косяк фреймворка?
2. Не лучше ли создавать объект класса Beta? Ведь экшен в любом случае отработает.
3. Есть ли ещё какие-то подводные камни, связанные с наследованием контроллеров? Может, контроллеры вообще наследовать не рекомендуется?