如何在Symfony 2中指定param转换器优先级?

时间:2012-07-03 15:54:40

标签: symfony doctrine doctrine-orm

我是Symfony 2项目,为我继承自TenantableEntityInterface的类定义自己的param converter。框架本身提供默认值DoctrineConverter,而我自己的转换器非常相似,但应该是唯一要执行的(也是出于性能原因)。

如何使用param转换器指定优先级?

/**
 * @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)
{
}

1 个答案:

答案 0 :(得分:2)

好的,发现它在一个不起眼的页面上。应在服务定义级别指定优先级(-10到10)(我正在使用JMSDiExtraBundle)。

更高优先级表示您自己的转换器在DoctrineConverter之前执行:

/**
 * @Service("request.doctrine_tenantable_entity_converter")
 * @Tag("request.param_converter", attributes = {"priority" = "10"})
 */
class DoctrineTenantableEntityConverter implements ParamConverterInterface {}