0

私はSymfony2プロジェクトで、から継承するクラス用に独自のパラメーターコンバーター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)
{
}
4

1 に答える 1

3

わかりました、あいまいなページで見つけました。優先度 (-10 から 10) はサービス定義レベルで指定する必要があります (私は JMSDiExtraBundle を使用しています)。

優先度が高いということは、独自のコンバーターが次の前に実行されることを意味しますDoctrineConverter

/**
 * @Service("request.doctrine_tenantable_entity_converter")
 * @Tag("request.param_converter", attributes = {"priority" = "10"})
 */
class DoctrineTenantableEntityConverter implements ParamConverterInterface {}
于 2012-07-03T16:05:00.063 に答える