2015-01-16 10 views
9

Mam trasy określony z adnotacją, na przykład:Korzystanie stałe klasy w Symfony routingu

/** 
* @Route("/doSomething/{param}", name="route_name", defaults={"param"=1}) 
*/ 

Czy możliwe jest użycie klasy stałą zamiast tego ustalony „1”, takich jak:

/** 
* @Route("/doSomething/{param}", name="route_name", defaults={"param"=MyBundle:MyEntity:DEFAULT_TYPE}) 
*/ 

(oczywiście powyższe zawiedzie)

+0

Możliwy duplikat: http://stackoverflow.com/questions/14713913/symfony2- use-php-class-constant-in-yaml-config Mimo, że mówią o "YAML" zamiast adnotacji, to wniosek, że tylko "XML" obsługuje ciągłe wstrzykiwanie –

Odpowiedz

15

Tak można używać stałych w adnotacji, wystarczy użyć FQN klasy:

/** 
* @Route("/doSomething/{param}", name="route_name", defaults={"param"=Namespace\MyBundle\MyEntity::DEFAULT_TYPE}) 
*/ 

Jeśli jesteś w tej samej przestrzeni nazw, lub zaimportować klasę trzyma stałą, można go skrócić:

use Namespace\MyBundle\MyEntity; 

/** 
* @Route("/doSomething/{param}", name="route_name", defaults={"param"=MyEntity::DEFAULT_TYPE}) 
*/ 
+0

Dlaczego downvote? To działa. – Gerry

+0

Przepraszam, mam problemy z siecią i zrobiłem coś złego. Przegrałem teraz twoją odpowiedź! Dzięki, miła rada, jednak jest tylko jedna zła rzecz - musisz zdefiniować FQN, właściwie ... W każdym razie działa to 0K! – Nevertheless

+3

Cóż, możesz zaimportować klasę w swoim kodzie PHP, aby ją skrócić. – Gerry