什么,我之前已经做是使用构造只有我的模型和使用外墙为Laravel的提供的类即Session
,Auth
,Validator
等,例如注射。如果我通过构造并通过$this->..
语法或注入每个类(我的或Laravel的),我是否应该使用构造函数注入我自己的类,并使用Facades来提供Laravel提供的任何东西,是否会成为的好主意?Laravel:依赖注入vs Facades?
更具体地讲,这里是我的控制器通常是这样的:
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('/');
}
...
}
这个问题似乎是题外话,因为它应该在程序员.stackexchange.com – 2014-11-22 18:26:08
你知道吗?为什么*你应该注入对象而不是使用Laravel的外观? – 2014-11-22 18:44:31
@FlorianMargaine,应该是*“立面”*。 – 2014-11-22 18:52:27