我試圖在Laravel中執行依賴注入以使我的控制器和模型儘可能地保持苗條。目標是讓存儲庫處理提取歸因於某些模型的數據。Laravel控制器依賴注入
效仿的榜樣,但我不明白的地方的$user
的來源。
所以在看樣板,我們有兩個文件:
的ProfileController
here
摘錄如下:
use App\Repositories\Frontend\Access\User\UserRepository;
/**
* Class ProfileController.
*/
class ProfileController extends Controller
{
/**
* @var UserRepository
*/
protected $user;
/**
* ProfileController constructor.
*
* @param UserRepository $user
*/
public function __construct(UserRepository $user)
{
$this->user = $user;
}
這看起來很像在文檔中提到的依賴注入,這是:
class UserController extends Controller {
/**
* The user repository instance.
*/
protected $users;
/**
* Create a new controller instance.
*
* @param UserRepository $users
* @return void
*/
public function __construct(UserRepository $users)
{
$this->users = $users;
}
我的問題是我不明白$user
是從哪裏來的。
在UserRepository沒有$ user定義爲類本身的參數。沒有在代碼中的任何地方Auth::user()
,所以我很困惑用戶實例來自哪裏。
'$ user'只是變量的名稱。它也可以是'$ biggieSmalls'或其他任何東西。該變量只保存「UserRepository」的一個實例。 – devk
Laravel的DIC創建它,因爲控制器需要一個。 – bassxzero
@devk該實例分配給該變量的位置在哪裏?我知道它可以被命名爲任何東西,但我不明白它在哪裏分配。它不是在類型暗示是嗎? –