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Вот собственно и все
