如何使用自动装配创建新的MyService()?

问题描述 投票:-1回答:1

[我喜欢自动装配,它绝对是我见过的最优雅的依赖管理解决方案。我也想在实例化新对象时使用它。

请考虑以下服务:

class MyService()
{
    public function __construct(Dependency1 $var1, Dependency99 $var99)
    {
        ...
    }
}

这是我使用的时间:

class AnotherService
{
    public function buildServices(array $arrData)
    {
        $arrMyServices = [];
        foreach($arrData as $data) {

                                    // I want to autowire this!
            $arrMyServices[] = (new MyService($var1, $var99))
                                    ->loadData($data);
        }

        return $arrMyServices;
    }
}

问题是关于// I want to autowire this!下面的行。 我不想在那里手动传递依赖项,但是创建一个新的自动连线服务。理想情况下,我会呼叫$symfony->createMyService()并自动重新获得服务的新实例。

ATM我确实创建了一个像createMyService()这样的工厂方法,但是这很浪费时间。有没有一种“ Symfony”的方式来做到这一点?

php symfony oop symfony4
1个回答
-1
投票

我认为这里的设计不好。似乎您完全不了解IoC和依赖项注入模式。

© www.soinside.com 2019 - 2024. All rights reserved.