如何处理laravel中的多个依赖注入?

时间:2016-07-12 07:19:05

标签: php laravel dependency-injection laravel-5.2

我有一个laravel类,其中包含五个以上的依赖项,将来可能会增加。

我在 php mess detector 中收到警告消息(CouplingBetweenObjects多于13)

我是正确地做了这个还是有更好的架构来避免这种情况。

class UserController {
   public function __construct(
        UserRepository $userModel,
        UsersTransformers $usersTransformers,
        GroupRepository $groupModel,
        GroupTransformers $groupTransformers,
        ProjectRepository $projectModel,
        ProjectTransformers $projectTransformers
    ) {
        $this->userModel = $userModel;
        $this->usersTransformers = $usersTransformers;
        $this->groupModel = $groupModel;
        $this->groupTransfromers = $groupTransformers;
        $this->projectModel = $projectModel;
        $this->projectTransformers = $projectTransformers;
    }
}

1 个答案:

答案 0 :(得分:0)

您不必对所有依赖项使用构造函数注入,您可以使用App::make('Namespace\Class')

从IOC容器中获取它们

但是有这么多的依赖是一种气味,因为看起来你的班级承担了很多责任。例如,为什么UserController需要了解有关转化GroupsProjects的原因?也许您可以将控制器用于这些类,并让控制器抽象出它们的转换方式?