2016-07-12 6 views
0

私は5つ以上の依存関係を持つ1つのラーベルクラスを持っています。laravelで複数の依存関係注入を処理する方法は?

私はPHPの混乱検出器に警告メッセージが出てい

私はこれを正しく行うか、これを回避するために任意のより良いアーキテクチャがありAM(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

@IsmailRBOUH私はlist、viewの各変圧器に2つの機能を持っています。だから私はそれを注入し、それぞれの機能を呼び出す – vijaykumar

+0

あなたはする必要はありません!トランスフォーマーの使い方の素晴らしいアプローチは次のとおりです:https://www.neontsunami.com/posts/using-fractal-with-laravel-and-lumen –

答えて

0

それはそうなので、あなたのクラスが持っているようにあなたがApp::make('Namespace\Class')

を使用してでも、非常に多くの依存関係を持つIOCコンテナからそれらを得ることができ、すべての依存関係のためのコンストラクタ・インジェクションを使用する必要が臭いですありません多くの責任に。たとえば、UserControllerGroupsProjectsの変換について知る必要があるのはなぜですか?たぶん代わりにそれらのクラスのコントローラを使用して、コントローラがどのように変換されているかを抽象化することができますか?

関連する問題