Переопределить базовый Module.

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Tsamsiyu
Сообщения: 51
Зарегистрирован: 2014.06.27, 09:37

Переопределить базовый Module.

Сообщение Tsamsiyu »

Всем, привет, подскажите, возможно ли в yii2 переопределить базовый модуль приложения(если он есть?). Мне конкретно нужно переопределить метод createControllerById. Сейчас я просто отнаследовался от yii\base\Module, но теперь нужно както указать yii откуда подтягивать этот base\Module.
Help me.
Adren
Сообщения: 24
Зарегистрирован: 2015.02.27, 12:38
Откуда: Тула

Re: Переопределить базовый Module.

Сообщение Adren »

мб в данном случае лучше использовать events? :)
https://github.com/yiisoft/yii2/blob/ma ... нтроллера-
Tsamsiyu
Сообщения: 51
Зарегистрирован: 2014.06.27, 09:37

Re: Переопределить базовый Module.

Сообщение Tsamsiyu »

Все события принадлежат уже созданному контроллеру, а я хочу создавать контроллер по определенному правилу, к примеру:
идет запрос /blog/index, я на основании subdomain буду создавать instance либо DetailBlogController либо SimpleBlogController.
Adren
Сообщения: 24
Зарегистрирован: 2015.02.27, 12:38
Откуда: Тула

Re: Переопределить базовый Module.

Сообщение Adren »

А если зарыться пораньше, при инициализации приложения? https://github.com/yiisoft/yii2/blob/ma ... cations.md
padlyuck
Сообщения: 302
Зарегистрирован: 2015.02.03, 09:50

Re: Переопределить базовый Module.

Сообщение padlyuck »

viewtopic.php?f=19&t=19107 правда в этом случае отнаследоваться от базового класса нельзя, только дублировать полностью
Tsamsiyu
Сообщения: 51
Зарегистрирован: 2014.06.27, 09:37

Re: Переопределить базовый Module.

Сообщение Tsamsiyu »

Попробовал в bootstrap($application) добавить

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

    $module = $application->module.
        if ($config->hasAccessToSubAction('simple_blog')) {
            $module->controllerMap['blog'] = $controllersScope . 'SimpleBlogController';
        } else {
            $module->controllerMap['blog'] = $controllersScope . 'DetailBlogController';
        }
Добавляется все норм, но при создании контроллера это не учитывается, если же жестко добавить прям в конфиг этот blog, то все нормально.
Tsamsiyu
Сообщения: 51
Зарегистрирован: 2014.06.27, 09:37

Re: Переопределить базовый Module.

Сообщение Tsamsiyu »

В итоге, единственной нормальной возможностью счет переопределить Application.
Bio man
Сообщения: 609
Зарегистрирован: 2013.07.22, 10:40

Re: Переопределить базовый Module.

Сообщение Bio man »

А UrlManager::rules настроить не пробовали? Или даже переопределить класс под свои нужды?
http://www.yiiframework.com/doc-2.0/yii ... nager.html
Последний раз редактировалось Bio man 2015.07.24, 23:54, всего редактировалось 1 раз.
Ответить