Где правильно установить переменную в сессии в Yii?

Есть сайт с поддоменами. Нужно определять поддомен, узнать регион и показывать информацию для соответствующего региона. Где лучше проверять поддомен и устанавливать значение в сессию?
Сейчас сделал отдельный класс BaseController, проверяю и запоминаю значения у него в init(), наследуюсь от него во всех контроллерах фронтэнда. Работает, но не нравится, что наследуюсь от нового класса.
  • Вопрос задан
  • 103 просмотра
Решения вопроса 1
onqu
@onqu
weasy
Сделать сервис если эти данные будут нужны в дальнейшем, иначе листенер.

если компонет - примерный конфиг
return [
    'bootstrap' => [
        'mySubdomainComponent'
    ],
    'components' => [
        'mySubdomainComponent' => '\namespace\of\mySubdomainComponent'
    ]
];

// обработка данных в компоненте, метод init
...

// в дальнейшем можно получить компонент
\Yii::$app->get('mySubdomainComponent')


если listener - нужно добавить в bootstrap
$app = \Yii::$app;
$app->on($app::EVENT_BEFORE_REQUEST, ['myListener', 'method']);
// в листенере делаем нужную обработку
...
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы