Добрый день.
Изучаю Yii, появился нубский вопрос из разряда "как правильно".
Допустим, есть большой сайт с кучей разделов (наподобие http://www.turizm.ru/): новости, статьи, форум, фотографии от пользователей, поиск туров и т.д.
За каждый раздел отвечает отдельный контроллер, а то и целый модуль, со своими представлениями и моделями. Требуется сделать главную страницу сайта, на которой отображаются блоки, относящиеся к разным разделам.
Как это правильно организовать?
Вижу 2 варианта:
1. Контроллер "Главная страница", запрашивающий действие "Блок для главной страницы" из контроллера каждого раздела и собирающий их вместе.
2. Контроллер "Главная страница", подключающий по виджету для каждого блока.
Первый вариант логичнее выглядит с точки зрения разделения проекта на модули, но не очень красивая получается сборка (придётся пробрасывать готовый HTML из одного контроллера в другой).
Второй вариант мне кажется более соответствующим "духу" фреймворка, но смущает "размазывание" функционала по виджетам.
Как считаете, что лучше? И какие есть ещё варианты?
Сборка сложной страницы
Re: Сборка сложной страницы
Вижу только один вариант - куча виджетов. И какое здесь размазывание? Каждый виджет нужно поместить в модуль, к которому он относится.
- slavcodev
- Сообщения: 3134
- Зарегистрирован: 2009.04.02, 21:42
- Откуда: Valencia
- Контактная информация:
Re: Сборка сложной страницы
andy_s, ведь с модулями не так все просто, эти виджеты могут зависеть от модуля в котором они находятся, и тогда без инициализации модуля просто так виджет запустить не получится.
Жду Yii 3!
Re: Сборка сложной страницы
Чтобы подключить в виджете модели/компоненты модуля, не обязательно его грузить. Можно просто сделать Yii::import(...) в начале файла. А больше вроде бы и не от чего виджетам зависеть
Re: Сборка сложной страницы
Тогда инициализировать модуль!
Re: Сборка сложной страницы
Понял, спасибо. Как-то упустил, что виджеты тоже можно разносить по модулям.