Организация модулей в проекте на Yii2

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
fcnybok
Сообщения: 6
Зарегистрирован: 2018.03.05, 15:04

Организация модулей в проекте на Yii2

Сообщение fcnybok »

Товарищи, возникла идея вынести рендеригн шапки в шаблоне отдельным модулем, потому как в шапке будет своя логика.
Вот модуль контроллера модуля:

Код: Выделить всё

class HeadController extends Controller
{
	public function actionIndex()
	{
		return $this->renderFile('@frontend/modules/header/views/head/index.php');
	}
}
И вот вызов модуля в шаблоне:

Код: Выделить всё

<?php echo Yii::$app->getModule('header')->runAction('head/index');?>
Вопрос как правильно организовать модульную структуру вывода и правильно ли я вызываю модуль в шаблоне?

И еще такой момент, метод render в контроллере почему-то не корректно работает, если записать его вот так:

Код: Выделить всё

return $this->render('index')
Происходит какое-то зацикливание при рендере.
fcnybok
Сообщения: 6
Зарегистрирован: 2018.03.05, 15:04

Re: Организация модулей в проекте на Yii2

Сообщение fcnybok »

С этим вопросом return $this->render('index') разобрался.
Аватара пользователя
SiZE
Сообщения: 2817
Зарегистрирован: 2011.09.21, 12:39
Откуда: Perm
Контактная информация:

Re: Организация модулей в проекте на Yii2

Сообщение SiZE »

это прям щас серьезно да? рендеринг шапки в модуль? :)

Смотри в сторону виджетов.
fcnybok
Сообщения: 6
Зарегистрирован: 2018.03.05, 15:04

Re: Организация модулей в проекте на Yii2

Сообщение fcnybok »

А почему бы и нет, чем это плохо по Вашему?
Евгений Емельянов
Сообщения: 167
Зарегистрирован: 2015.06.10, 10:43

Re: Организация модулей в проекте на Yii2

Сообщение Евгений Емельянов »

Вам нужно представление (шапка), содержащее свою логику. Для этого и придуманы виджеты.
fcnybok писал(а): 2018.04.02, 11:43 потому как в шапке будет своя логика.
Документация: http://stuff.cebe.cc/yii2docs-ru/guide- ... dgets.html
Виджеты представляют собой многоразовые строительные блоки, используемые в представлениях для создания сложных и настраиваемых элементов пользовательского интерфейса...
В случае, когда виджет не содержит логики, а содержит только код, отвечающий за вывод разметки, он мало отличается от представления.
И сравните это с модулем.
Модули - это законченные программные блоки, состоящие из моделей, представлений, контроллеров и других вспомогательных компонентов.


Модуль - это приложение в миниатюре, а Вы хотите шапку сайта сделать модулем! Оно Вам таки надо?
Аватара пользователя
SiZE
Сообщения: 2817
Зарегистрирован: 2011.09.21, 12:39
Откуда: Perm
Контактная информация:

Re: Организация модулей в проекте на Yii2

Сообщение SiZE »

fcnybok писал(а): 2018.04.02, 16:16 А почему бы и нет, чем это плохо по Вашему?
У модуля нет четкой ответственности, кроме группировки MVC и дерева вложенных модулей. Обычно в модуль выносится какая-то самодостаточная единица: промокоды, пользователи, статьи, комментарии и тп.

Для вывода динамических блоков в представлении есть виджеты.
fcnybok
Сообщения: 6
Зарегистрирован: 2018.03.05, 15:04

Re: Организация модулей в проекте на Yii2

Сообщение fcnybok »

Спасибо народ, попробуем идею с виджетами.
Ответить