3

JMS DI を使用して、アノテーション付きのサービスを注入しています。

use JMS\DiExtraBundle\Annotation as DI;
/**
 * @DI\Service("foo.bar.service")
 */
class myClass
{
    /**
    * @DI\Inject("debug.stopwatch")
    * @var $stopWatch \Symfony\Component\Stopwatch\Stopwatch
    */
    public $stopWatch;

    /**
    * @DI\Inject("serializer")
    * @var $serializer \JMS\Serializer\Serializer
    */
    public $serializer;

    public function toto()
    {
       if (isset($this->stopwatch)) {
         $this->stopWatch->start("init");
       }
    }
}

ただし、StopWatch は Dev Env でのみ使用できるため、本番環境で実行する場合:

The service "foo.bar.service" has a dependency on a non-existent service "debug.stopwatch".' in...

私の質問:クラスにストップウォッチ サービスを適切に挿入するにはどうすればよいですか?

4

1 に答える 1

4

依存関係をオプションにします:

@DI\Inject("debug.stopwatch", required=false)
于 2013-04-07T21:07:33.987 に答える