DELCA.RU

Блог web-разработчика.

23 Ноя

Symfony. Маршрутизация. Слеш в конце строки


Периодически замечал что симфони очень категоричен к слешу в конце строки, т.е. /about и /about/ для него два разных адреса. Эта особенность присутствует даже на оф сайте (попробуйте к ссылке http://www.symfony-project.org/jobeet/1_4/Doctrine/ru/05 добавить в конце слеш «/»)
Но недавно, при разработке API приложения для facebook, мне пришлось заставить symfony одинаково реагировать на оба адреса. Решение нашлось довольно простое:
Создаём следующий файл:

# apps/frontend/lib/myPatternRouting.php
<?php
class myPatternRouting extends sfPatternRouting
{
  public function parse($url)
  {
    $url = rtrim($url, '/');
    return parent::parse($url);
  }
}
?>

и немного изменяем factories.yml указывая наш класс для роутинга:

# apps/frontend/config/factories.yml
routing:
  class: myPatternRouting
  param:
    generate_shortest_url: true
    extra_parameters_as_query_string: true

Вот собственно и все 😉


Оставить комментарий