Страница 1 из 1

Сборка сложной страницы

Добавлено: 2012.02.27, 15:55
Psi
Добрый день.
Изучаю Yii, появился нубский вопрос из разряда "как правильно".

Допустим, есть большой сайт с кучей разделов (наподобие http://www.turizm.ru/): новости, статьи, форум, фотографии от пользователей, поиск туров и т.д.
За каждый раздел отвечает отдельный контроллер, а то и целый модуль, со своими представлениями и моделями. Требуется сделать главную страницу сайта, на которой отображаются блоки, относящиеся к разным разделам.
Как это правильно организовать?

Вижу 2 варианта:
1. Контроллер "Главная страница", запрашивающий действие "Блок для главной страницы" из контроллера каждого раздела и собирающий их вместе.
2. Контроллер "Главная страница", подключающий по виджету для каждого блока.

Первый вариант логичнее выглядит с точки зрения разделения проекта на модули, но не очень красивая получается сборка (придётся пробрасывать готовый HTML из одного контроллера в другой).
Второй вариант мне кажется более соответствующим "духу" фреймворка, но смущает "размазывание" функционала по виджетам.

Как считаете, что лучше? И какие есть ещё варианты?

Re: Сборка сложной страницы

Добавлено: 2012.02.27, 16:19
andy_s
Вижу только один вариант - куча виджетов. И какое здесь размазывание? Каждый виджет нужно поместить в модуль, к которому он относится.

Re: Сборка сложной страницы

Добавлено: 2012.02.27, 16:37
slavcodev
andy_s, ведь с модулями не так все просто, эти виджеты могут зависеть от модуля в котором они находятся, и тогда без инициализации модуля просто так виджет запустить не получится.

Re: Сборка сложной страницы

Добавлено: 2012.02.27, 16:40
andy_s
Чтобы подключить в виджете модели/компоненты модуля, не обязательно его грузить. Можно просто сделать Yii::import(...) в начале файла. А больше вроде бы и не от чего виджетам зависеть :)

Re: Сборка сложной страницы

Добавлено: 2012.02.27, 17:01
slavcodev
а если модули имеют настройки?

Re: Сборка сложной страницы

Добавлено: 2012.02.27, 17:23
andy_s
Тогда инициализировать модуль!

Re: Сборка сложной страницы

Добавлено: 2012.02.28, 09:47
Psi
Понял, спасибо. Как-то упустил, что виджеты тоже можно разносить по модулям.