什麼,我之前已經做是使用構造只有我的模型和使用外牆爲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