Получить переменную требования маршрутизации в Symfony2 - PullRequest
2 голосов
/ 10 октября 2011

Для того, чтобы создать для меня веб-интерфейс, я бы хотел получить переменную из конфигурации маршрутизации моего пакета.Я определяю доступные страницы в mybundle / Resources / config / routing.yml .

mybundle_homepage:
  pattern:  /{_locale}/{branch}/{page}
  defaults: { _controller: mybundle:mycontroller:index, _locale: de, branch: x.x.x, page: start }
  requirements:
    _locale:  de|en
    page:     start|functions|events|constants|styleguide

Теперь я взглянул на Symfony2 YAML Parser и мне нужно указать путь к немустатический метод parse : http://symfony.com/doc/2.0/reference/YAML.html

mycontroller.php

use Symfony\Component\Yaml\Yaml;

class mycontroller extends Controller
{
  public function indexAction($_locale, $branch, $page)
  {
    $routing = Yaml::parse('../Resources/config/routing.yml');
    var_dump($routing);
  }
}

Я думал, что смогу сделать это таким образом, потому что папка выглядит хирарчойвот так:

  • mybundle
    • Контроллер
      • mycontroller.php
    • Ресурсы
      • config
        • routing.yml

Но это не работает.Любые идеи или, возможно, другой способ получить массив require.page из файла маршрутизации?

С уважением, Бен

1 Ответ

6 голосов
/ 10 октября 2011

Вы должны иметь доступ к службе router внутри класса, который осведомлен о контейнере DI.Итак, вы можете написать что-то вроде:

$routes = $this->container->get('router')->getRouteCollection();

$route = $routes->get('my_route_name');
print_r($route->getRequirements());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...