Sync
Новичок
MVC: контроллер берет на себя слишком много
В своей CMS контроллер, подобно контролеру Seagull Framework делает все необходимое для инициализации модуля, т.е. создает экземпляр его класса, вытаскивает настройки модуля, вызывает его методы и тд.
Это удобно когда модулями генерить основную часть контента, а-ля {$body}.
Но вот столкнулся с проблемой: часто надо выводить что-то на панель, например, несколько новостей, несколько позиций каталога, статистику форума и тд.
Получается нужно где-то писать еще и такое:
$news = new News();
$list_news = $news->list();
.....
Но ведь модуль заточен так, что он ожидает от контроллера настроек и прочей фигни, да и система вывода, в данном случае это Smarty, инкапсулирована в одном из методов контроллера, то есть надо эту $list_news еще как-то и заэссайгнить.
Теперь думаю часть работы контроллера переносить в класс
Module, от которого наследуются все модули.
Что можете подсказать по этому поводу? В чем заключается моя правота/неправота?
Спасибо!
В своей CMS контроллер, подобно контролеру Seagull Framework делает все необходимое для инициализации модуля, т.е. создает экземпляр его класса, вытаскивает настройки модуля, вызывает его методы и тд.
Это удобно когда модулями генерить основную часть контента, а-ля {$body}.
Но вот столкнулся с проблемой: часто надо выводить что-то на панель, например, несколько новостей, несколько позиций каталога, статистику форума и тд.
Получается нужно где-то писать еще и такое:
$news = new News();
$list_news = $news->list();
.....
Но ведь модуль заточен так, что он ожидает от контроллера настроек и прочей фигни, да и система вывода, в данном случае это Smarty, инкапсулирована в одном из методов контроллера, то есть надо эту $list_news еще как-то и заэссайгнить.
Теперь думаю часть работы контроллера переносить в класс
Module, от которого наследуются все модули.
Что можете подсказать по этому поводу? В чем заключается моя правота/неправота?
Спасибо!