Пакеты Symfony2 с одинаковой маршрутизацией

У меня есть два пакета в SF2, каждый из которых имеет один и тот же маршрут. пример: / блог

Пакет А

user_blog:
    pattern:  /blog
    defaults: { _controller: UserBlogBundle:Default:blog }

Пакет Б

team_blog:
    pattern:  /blog
    defaults: { _controller: TeamBlogBundle:Default:blog }

и с параметром сеанса я буду знать, какой пакет будет выполнять запрос

извиняюсь,

Я хочу запустить правильный пакет в соответствии с параметром сеанса

пример

{{
if($Parameter ='A')
 run user_blog
else
 run team_blog
}}

Я делаю это:

//src/project/TestBundle
use Symfony\Component\Routing\RouteCollection;

$collection = new RouteCollection();
$req = $this->getRequest();
if($req->server->get('SERVER_NAME') == 'www.domainA.com')
$collection->addCollection($loader->import("@BundleABundle/Resources/config/routing.php"));
else
$collection->addCollection($loader->import("@BundleBBundle/Resources/config/routing.php"));
return $collection;

это обычный?

2 ответа

Решение

Это решено на 2.2 версии параметра хоста

http://symfony.com/doc/master/components/routing/hostname_pattern.html

Bundle A

user_blog:
    pattern:  /blog
    host: a.example.com
    defaults: { _controller: UserBlogBundle:Default:blog }

Bundle B

team_blog:
    pattern:  /blog
    host: b.example.com
    defaults: { _controller: TeamBlogBundle:Default:blog }

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

Другие вопросы по тегам