在Symfony中使用注释注入依赖项


Injecting dependencies using annotations in Symfony

我来自Spring/Java背景,正在学习Symfony/PHP。它惊人地相似,我喜欢它。

在Spring中,我们可以@Autowire依赖项。在Symfony中,与之相当的是什么?我想使用注释注入我的依赖项。我不想在xml或yml中指定。

例如:

class foo {
        /**
         * @Inject 'ABC'XYZ'Dependency
         */
        private $dependency;
        public function abc(){
              $dependency->bar();
        }
};

还有(现在我刚刚想到),有可能做这样的事情吗。使用注释,声明服务的名称和范围:

/**
 * @Service("someService")
 * @Scope("session / request / ..")
 */
class foo {
        /**
         * @Inject 'ABC'XYZ'Dependency
         */
        private $dependency;
        public function abc(){
              $dependency->bar();
        }
};

自动布线将从Symfony 2.8开始提供:http://symfony.com/blog/new-in-symfony-2-8-service-auto-wiring