2012-02-24 2 views
3

Я хочу читать пользовательские аннотации, такие как @Route для контроллеров. Я буду использовать его для eventlisteners как это:Symfony2: Где/как я могу запустить собственный аннотатор?

/** 
* @Event("some.event"); 
*/ 
public function onSomeEvent(Event $event) {} 

Я узнал, что я могу использовать аннотацию-ридер или простой PHP-отражения для анализа заголовочного блока. Какое событие я должен слушать, чтобы вызвать моего читателя? Или может кто-нибудь дать мне подсказку, как это работает с @ Route-аннотациями? Мне нужна почти та же логика, но я пропустил, очевидно, некоторые важные моменты, прочитав код symfony.

+0

Зависит от того, когда вам нужно их прочитать. Перед вызовом контроллера, после или внутри контроллера? Уточните свой вопрос. – meze

+0

Мне нужно это как можно раньше и до вызова контроллера, потому что я хочу настроить eventdispatcher. – Daniel

ответ

3

Взгляните на код в ControllerListenerclass в пределах SensioFrameworkExtraBundle. Он зарегистрирован как kernel.event_listenerhere.

Этот слушатель читает/анализирует аннотации, предоставленные этим пакетом. Аннотации, предоставленные SensioFrameworkExtraBundle, расположены here.

Вы должны быть в состоянии просто имитировать одну из предоставленных аннотаций для удовлетворения ваших потребностей.

Смежные вопросы