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