Utilisation des constantes de classe dans le routage Symfony

j'ai une route définie avec une annotation, comme ceci:

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

est-il possible d'utiliser une constante de classe à la place de ce '1' codé en dur, comme:

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

(évidemment, le ci-dessus échoue)

9
demandé sur Przemek 2015-01-16 14:47:02

1 réponses

Oui, vous pouvez utiliser des constantes dans les annotations, il suffit d'utiliser la FQN de la classe:

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

si vous êtes dans le même espace de noms, ou si vous importez la classe contenant la constante, vous pouvez la raccourcir:

use Namespace\MyBundle\MyEntity;

/**
 * @Route("/doSomething/{param}", name="route_name", defaults={"param"=MyEntity::DEFAULT_TYPE})
*/
16
répondu Gerry 2015-01-16 12:47:48