Есть ли способ получить модуль / действие, на которое ссылается URL? - PullRequest
1 голос
/ 26 мая 2011

В symfony есть ли метод, который я могу использовать, который выполняет обратный просмотр моих маршрутов, чтобы определить модуль и действие, на которое указывает URL?

Скажи, что-то вроде:

get_module("http://host/cars/list"); // ("cars")
get_action("http://host/frontend_dev.php/cars/list"); // ("list")

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

get_module("/");  // (What this returns is entirely dependent on the configured routes.)

Спасибо!

1 Ответ

3 голосов
/ 26 мая 2011

Используйте класс sfRouting для сопоставления URL-адресов.Это часть объекта sfContext.Ваш код (в действии) будет выглядеть так:

public function executeSomeAction(sfWebRequest $request)
{
  if($params = $this->getContext()->getRouting()->parse('/blog'))
  {
     $module = $params['module']; // blog
     $action = $params['action']; // index
     $route  = $params['_sf_route'] // routing instance (for fun)
  }
  else
  {
     // your URL did not match
  }
}
...