我是Symfony 2项目,将为从TenantableEntityInterface
继承的类定义我自己的参数转换器。框架本身提供了一个默认的DoctrineConverter
,而我自己的转换器非常相似,但应该是唯一要执行的转换器(也是出于性能原因)。
如何使用参数转换器指定优先级?
/**
* @Service("request.doctrine_tenantable_entity_converter")
* @Tag("request.param_converter")
*/
class DoctrineTenantableEntityConverter implements ParamConverterInterface
{
}
我试图将优先级传递给转换器,但它不起作用:
/**
* @Route("/show/{id}")
* @Method("GET")
* @ParamConverter("message", class="MyBundle:Message", priority=10)
* @Template
*/
public function showAction(Message $message)
{
}
好的,在一个晦涩的页面上找到了它。优先级(-10 到 10)应该在服务定义级别指定(我使用的是 JMSDiExtraBundle)。
更高的优先级意味着您自己的转换器在DoctrineConverter
之前执行:
/**
* @Service("request.doctrine_tenantable_entity_converter")
* @Tag("request.param_converter", attributes = {"priority" = "10"})
*/
class DoctrineTenantableEntityConverter implements ParamConverterInterface {}