我之前一直在做的是只使用构造函数注入我的模型,并为 Laravel 提供的类使用外观,Session
例如,等等Auth
。如果我通过构造注入每个类(无论是我的还是 Laravel 的)并通过语法使用它,或者我应该使用构造函数注入我自己的类并将 Facades 用于 Laravel 提供的任何东西,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('/');
}
...
}