Я настраиваю FOSRestBundle и у меня есть некоторые сомнения, не знаю, связано ли это с компонентом Symfony2 Routing или это можно сделать любым другим способом. Вот,
1) Как я могу проверить, если X-PDONE-SESSION-ID
устанавливается по заголовкам запроса перед выполнением метода? Можно ли это сделать с помощью аннотаций по маршрутизации? Есть идеи как это проверить?
2) Мне нужно использовать этот RegEx \b(?:(?:https?):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]
как requirements
в пути @QueryParam(name="token", requirements="")
для проверки действительных URL-адресов, как?
(1) может быть сделано с использованием метода, описанного в статья в книге, на которую вы ссылаетесь как на бесполезную:
Как вы уже видели, маршрут может быть создан для соответствия только определенным групповым символам маршрутизации (через регулярные выражения), HTTP-методам или именам хостов. Но система маршрутизации может быть расширена, чтобы иметь почти бесконечную гибкость, используя условия:
обращайтесь:
путь: / контакт
значения по умолчанию: {_controller: AcmeDemoBundle: Main: contact}
условие: «context.getMethod () в [‘GET’, ‘HEAD’] и request.headers.get (‘User-Agent’) соответствует ‘/ firefox / i'»Условие является выражением, и вы можете узнать больше о его синтаксисе здесь: Синтаксис выражения. При этом маршрут не будет совпадать, если метод HTTP не является либо GET, либо HEAD, и если
User-Agent
Заголовок соответствует Firefox.
В (2) вы показываете регулярное выражение для полного URL, а не просто параметр запроса. Насколько я знаю, невозможно изменить все регулярные выражения, используемые компонентом маршрутизации по умолчанию.
Других решений пока нет …