Laravel 8 自动注入
另外,并且更重要的是,你可以简单地使用「类型提示」 的方式在类的构造函数中注入那些需要容器解析的依赖项,包括 控制器、事件监听器、中间件 等
。此外,你也可以在 队列任务 的 handle
方法中使用「类型提示」注入依赖。实际上,这才是大多数对象应该被容器解析的方式。
例如,你可以在控制器的构造函数中添加一个 repository 的类型提示,然后这个 repository 将会被自动解析并注入类中:
<?php
namespace App\Http\Controllers;
use App\Models\Users\Repository as UserRepository;
class UserController extends Controller
{
/**
* user 仓储实例
*/
protected $users;
/**
* 创建一个控制器实例
*
* @param UserRepository $users
* @return void
*/
public function __construct(UserRepository $users)
{
$this->users = $users;
}
/**
* 使用给定的 id 显示 user
*
* @param int $id
* @return Response
*/
public function show($id)
{
//
}
}