2015-01-16 30 views
9

我有一個註釋中定義的路線,像這樣:使用類常量

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

是否有可能使用類常量,而不是這個硬編碼的「1」,如:

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

(當然上面的失敗)

+0

可能重複:http://stackoverflow.com/questions/14713913/symfony2-使用-php-class-constant-in-yaml-config儘管他們談論的是'YAML'而不是註釋,結論是隻有'XML'支持持續注入 –

回答

15

是的,你可以在註釋中使用常量,只需使用類的FQN:

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

如果你在同一個命名空間,或導入類保持恆定,可以縮短它:

use Namespace\MyBundle\MyEntity; 

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

爲什麼要downvote?它確實有效。 – Gerry

+0

不好意思,我有網絡問題,並且做錯了。我已經提出你的答案了!謝謝,不錯的建議,但是,只有一件壞事 - 你必須定義FQN,實際上...無論如何,這個工作0K! – Nevertheless

+3

那麼你可以在你的PHP代碼中導入這個類來縮短它。 – Gerry