Symfony 2依赖注入和自动装配

Ben*_*min 5 php dependency-injection symfony

我正在浏览与依赖注入相关的Symfony 2文档,但找不到自动装配的参考.我找到了一个提供此功能捆绑包,但它仍处于测试版状态,似乎与注释相关(如果我错了,请纠正我).

我正在寻找的是一个对象(例如服务容器),它可以通过setter注入在我的服务中注入依赖项.

例如,我将定义一个服务:

class Service {
    /**
     * @var \PDO
     */
    protected $pdo;

    /**
     * @param \PDO $pdo
     * @Inject
     */
    public function setPDO(\PDO $pdo) {
        $this->pdo = $pdo;
    }
}
Run Code Online (Sandbox Code Playgroud)

然后,我可以使用这个假设的服务容器在服务中注入依赖项,即使已在容器外创建了这个依赖项:

$service = new Service();
// ...

$container->inject($service);
Run Code Online (Sandbox Code Playgroud)

是否有可以通过这种方式自动装配依赖关系的DI容器?

Kév*_*las 3

从 Symfony 2.8 开始,原生支持自动装配:https://github.com/symfony/symfony/pull/15613