5

我正在浏览与Dependency Injection相关的Symfony 2 文档,但找不到对自动装配的引用。我找到了一个提供某些此功能的捆绑包,但它仍处于测试阶段,并且似乎与注释相关(如果我错了,请纠正我)。

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

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

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

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

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

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

$container->inject($service);

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

4

3 回答 3

3

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

于 2015-10-14T20:54:04.977 回答
2

https://github.com/kutny/autowiring-bundle也有自动装配包可用。

于 2013-09-23T08:29:01.480 回答
-1

请参阅JMSDiExtraBundle@InjectParams中的注释。

于 2012-07-13T12:22:32.680 回答