私はこの質問に対する答えを探していましたが、どこにも見つからないようです。Symfony:ユーザーがxの役割を持っている場合のサービスのデコレーション
私は現在、翻訳サービスをデコレートするデコレータサービスを定義しています。しかし、私は翻訳者サービスを飾りたいのは、ユーザーが特定の役割を持っている場合だけです。
services.yml
services:
app.my_translator_decorator:
class: MyBundle\MyTranslatorDecorator
decorates: translator
arguments: ['@app.my_translator_decorator.inner']
public: false
MyTranslatorDecorator.php
class MyTranslatorDecorator {
/**
* @var TranslatorInterface
*/
private $translator;
/**
* @param TranslatorInterface $translator
*/
public function __construct(TranslatorInterface $translator)
{
$this->translator = $translator;
}
// more code...
}
私はこれが可能だとは思いません。原則として、異なる要求に対してサービス定義を変更することはできません。翻訳サービス内のユーザーの役割を確認し、それに応じて行動する必要があります。 – Cerad
私は頻繁には使われないので、翻訳者を常に「飾る」というデコレータの考え方は好きではありません。デコレータであることに代わるものはありますか? – Kurzalead