То, что я делал ранее, - это вводить только МОИ МОДЕЛИ с помощью конструктора и использовать фасады для классов, предоставленных Laravel, например, Session
, Auth
, Validator
и т. Д. Будет ли хорошей идеей внедрять каждый класс (мой или Laravel) через конструкцию и использовать его с помощью синтаксиса $this->..
или я должен внедрить свои собственные классы с помощью конструктора и использовать Фасады для чего-либо, предоставляемого Laravel?
Чтобы быть более конкретным, вот как обычно выглядят мои контроллеры:
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('/');
}
...
}