Пакеты 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 }
На мой взгляд, каждый маршрут должен быть уникальным. Вы должны создать свое приложение, имея это в виду. В противном случае, я думаю, вы могли бы получить некоторые случайные поведения при доступе к этим маршрутам.