我试图在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该实例分配给该变量的位置在哪里?我知道它可以被命名为任何东西,但我不明白它在哪里分配。它不是在类型暗示是吗? –