@AlikDex

Вопросец yii'стам, ну и симфонисты тоже загляните?

Извиняйте что так не информативно. Просто не знаю как озвучить вопрос.
В общем тема такая. Сидел я значит думал думал. Не нравятся мне всякие Yii::$app->params['site_title'] массивы для настроек. Уныло и нудно в шаблонах прописывать постоянно такое. Запилил короче свои настройки с блудницами. Через класс, ну и подключил через компоненты. Получилось еще более унылое зрелище: Yii::$app->settings->get('site_title');
Вот. Подкрадываемся к сути вопроса. Вот если заинжектить этот объект с настройками в объект View? ну типа чтоб в шаблоне было $this->settings->get('site_title');. Нормально не? Какие подводные камни? Или в принципе идея г-но? Что по этому поводу скажут симфонисты, очень уж интересно, как они справляются с подобными ситуациями (когда нужен глобальный конфиг)? Или может вообще лучше статический класс сделать.
  • Вопрос задан
  • 155 просмотров
Решения вопроса 2
qonand
@qonand
Software Engineer
Не нравятся мне всякие Yii::$app->params['site_title'] массивы для настроек.

И правильно что не нравятся, такой подход создает только ненужные и не очевидные связи. Как его избегать зависит от конкретных задач.

ну типа чтоб в шаблоне было $this->settings->get('site_title');. Нормально не?

ну как бы не очень нормально. Получается что в настройках конкретного View содержаться тайтлы всех View-сайта. Вроде бы ничего страшного, но это как-то не правильно

Насколько я понимаю Вы хотите вынести настройки title всех страниц в единый файл настроек. В таком случае уж лучше реализовать какое-то поведение которое будет реагировать на соответствующее событие View, выбирать необходимый title для конкретного View (например по роуту) и задавать его
Ответ написан
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
Получилось еще более унылое зрелище

Почему? Я так же с настройками работаю. Храню в базе, кеширую и т.д. Удобно.

Вариант с view не правильный и вот почему:
настройки - это глобальная штука, которая может понадобиться в любом контексте, а привязав ко view Вы будете все время дергать View там где это нужно и не нужно. Так что считаю вариант использования как отдельный, самостоятельный компонент самый логичный.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы