如何在 Symfony 2 中指定参数转换器优先级



我是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 {}

最新更新