Так как с предыдущим топиком понимаю, что видимо захожу не с той стороны.
Потому решил создать еще одну отдельную тему в которой хотелось бы узнать ваши стратегии создания Блочно-Модульных сайтов, CMS например или Блог сайтов.
Что такое блоки?
В моём понимании (когда писал на CodeIgniter) - блок, это модуль со своим фронт контроллером, возвращающий результат своей работы (работа контроллера, модели, отображения).
Например:
- модуль фотоальбом PhotoAlbum, у него внутри есть контроллер FrontController и метод actionAlbums (показывает все альбомы), actionShow (показывает выбранный альбом)
- модуль Blog, внутри него два контроллера AdminController и FrontController, первый за админку (пока оставим его), второй имеет два метода actionPosts (показывает ленту постов), actionShow (показывает уже развернутый пост)
модули лежат в папке protected/modules/*
И вот есть например наше приложение SiteControll, которое на роутинг /blog/show/12 отвечает:
- достаёт из базы список связанных с этим адресом модулей, например у нас получается нужно на странице показать развернутое сообщение из блога и фотоальбом
- подключаем эти два модуля Blog, Photoalbum (!!!) и вызываем их методы из FrontController'а показать 12ый пост из модуля Blog/FrontController/actionShow/12 и точно такой же фотоальбом Photoalbum/FrontController/actionShow/12
- результаты складируем в переменные для шаблона и показываем нужный шаблон
Код: Выделить всё
$this->render( $blog_show_tpl, array( 'blog_front_show' => $blog_front_show_result, 'photoalbum_front_show' => $photoalbum_front_show_result) ); // понятно что названия здесь просто для удобства, а на деле будут динамеческие переменные блоки
<?= $blog_front_show ?>
<hr/>
<?= $photoalbum_front_show ?>
Блоки именно динамические, которые можно было бы легко убрать с одной страницы контроллера и подключить в другом а-ля SiteController
Это моя стратегия блоков.
Расскажите может о своей, более принятой в YII среде и удобной для программирования, развития, расширения и главное удобной?
Заранее спасибо