Yii2. Как работать с урлами если у вас несколько приложений в одном проекте

Часто при разработке проекта разбитого на несколько приложений возникает проблема: как получить урл на ресурс из другого приложения проекта. Допустим у вас в проекте есть приложения: форум, интернет-магазин, панель управления и промо-сайт. Все это приложения относятся к одному проекту, но приложения: форум, интернет-магазин и промо сайт должны управляться через «панель управления».

Соотвественно у «панели управления» есть свой компонент UrlManager со своими правилами для построения урлов, который отвечает только за построение урлов «панели управления» и который совершенно не знает о правилах для других приложений. Но в панели управления нам нужно получать ссылки на ресурсы других приложений. Как же быть в таком случае?

На самом деле решается все довольно просто, мы просто создаем несколько экземпляров UrlManager в «панели управления» каждый из которых используют правила урлов из соотвествующих приложений. Т.е. в конфигурации мы получаем следующий примерно код:

//...'components' => [    //...    'urlManager' => [        // правила урлов для панели управления    ],
'urlManagerForum' => [ // правила урлов для форума    'class' => 'yiiwebUrlManager',    'baseUrl' => '',    'enablePrettyUrl' => true,    'enableStrictParsing' => true,    'showScriptName' => false,    'rules' => include("forum/config/inc/urlRules.php") //файл с правилами для форума],

],//...

Для получения урла для форума нам надо просто вызвать код вида:

echo Yii::$app->urlManagerForum->createUrl(['post/detail', 'postId' => $model->id]);

Все очень просто

admin

Recent Posts

Лучшие дистрибутивы Linux

Если говорить о том, какие лучшие дистрибутивы Linux мы знаем, то этот список может быть…

1 неделя ago

Лучшие браузеры для Ubuntu

Хотя Ubuntu и поставляется со встроенным обозревателем Firefox многие пользователи считают что это не самая…

1 неделя ago

Установка Remmina Ubuntu 16.04 или 16.10

Что такое Remmina? Remmina — это совершенно бесплатный и свободный клиент так называемого удаленного рабочего…

1 неделя ago

Плюсы Ubuntu

Как мы знаем, Ubuntu это самая популярная сборка из систем на базе ядра Linux. У…

1 неделя ago

Выбираем ноутбук для Linux

Выбор ноутбука для каждого пользователя это довольно кропотливый процесс. Люди стараются подобрать ноутбук который будет…

1 неделя ago

Установка Linux рядом с Windows 10

Если вы решили ознакомиться с операционной системой Linux более детально и задались вопросом как установить…

1 неделя ago