我有一个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;
}
}
答案 0 :(得分:0)
您不必对所有依赖项使用构造函数注入,您可以使用App::make('Namespace\Class')
但是有这么多的依赖是一种气味,因为看起来你的班级承担了很多责任。例如,为什么UserController
需要了解有关转化Groups
和Projects
的原因?也许您可以将控制器用于这些类,并让控制器抽象出它们的转换方式?