Laravel: Injeção de Dependência vs Fachadas?
O que eu estava fazendo anteriormente erainjetar apenas MY MODELS usando o construtor eusar Fachadas para as aulas fornecidas pelo Laravel isto éSession
, Auth
, Validator
etc, por exemplo. Será que vai ser umboa idéia se eu injetar cada classe (meu ou do Laravel) através da construção e use-a$this->..
sintaxe oudevo injetar minhas próprias classes usando o construtor e usar Fachadas para qualquer coisa fornecida pelo Laravel?
Para ser mais específico, eis como meus controladores normalmente se parecem:
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('/');
}
...
}
Em vez disso, devo estruturar meus métodos como o controlador, como segue?
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('/');
}
...
}