2015-01-16 28 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