12

私が以前に行っていたのは、コンストラクターを使用して MY MODELS のみを注入し、Laravel が提供するクラス、つまり 、 などに Facades を使用することでしSessionた。コンストラクトを介してすべてのクラス(私のクラスまたは Laravel のクラス) を注入し、それを構文で使用するか、コンストラクターを使用して独自のクラスを注入し、 Laravel が提供するものに Facades を使用する必要がありますか?AuthValidator$this->..

より具体的に言うと、私のコントローラーは通常次のようになります。

class MyController extends BaseController 
{
    public function __construct( User $user, Bookmark $bookmark ) {
        $this->user = $user;
        $this->bookmark = $bookmark
    }

    public function foobar ( ) {
        $user_id = Input::get('bar');
        ...
        Session::get('someInfo');
        ...
        return Redirect::to('/');
    }
    ...
}

代わりに、コントローラーのようなメソッドを次のように構成する必要がありますか?

class MyController extends BaseController 
{
    public function __construct( User $user, Bookmark $bookmark, Input $input, Session $session, Redirect $redirect ) {
        $this->user = $user;
        $this->bookmark = $bookmark
        $this->input = $input;
        $this->session = $session;
        $this->redirect = $redirect;
    }

    public function foobar ( ) {
        $user_id = $this->input->get('bar');
        ...
        $this->session->get('someInfo');
        ...
        return $this->redirect->to('/');
    }
    ...
}
4

4 に答える 4