laravel - 带有反射参数的 Laravel 类方法
问题描述
我通常使用这样的参数:
public function test($parameter)
{
echo 'Parameter value: ' . $parameter;
}
在查看laravel 服务容器时,我看到了这段代码。
public function __construct(UserRepository $users)
{
$this->users = $users;
}
根据它使用反射的文档。但我不明白。
我不知道参数是如何UserRepository $users
工作的。这是别名还是什么?
解决方案
这称为类型提示,用于在构造函数中注入依赖项或验证将正确类型的参数传递给函数。注入只是意味着如果使用该make
方法调用该类,Laravel 将自动提供构造函数所需的类的实例。
例如,如果您有一个函数public function something(string $something)
,如果将除 a 之外的任何其他类型传递给此函数,则会引发错误,请String
确保使用正确的数据。
来自 laravel 文档:
或者,重要的是,您可以在由容器解析的类的构造函数中“类型提示”依赖关系,包括控制器、事件侦听器、队列作业、中间件等。实际上,这就是容器应该如何解析大多数对象的方式。
例如,您可以在控制器的构造函数中键入提示由您的应用程序定义的存储库。存储库将自动解析并注入到类中:
推荐阅读
- javascript - React Infinity scool:TypeError:无法读取 null 的属性“offsetTop”
- r - 关闭 Sys.setlocale() 的输出
- c# - 正则表达式检测单词是否是字符串的一部分并且下一个单词是否大写
- react-native - 我如何在 react-native 聊天应用程序中使用 GraphQl 订阅从 GraphQl 查询中获取实时更新
- react-native - 为什么 npm-audit 对 react-native-unimodule 失败
- c++ - 我怎样才能使这个 C++ 代码更高效
- javascript - D3js 过滤表
- asp.net-core - Netcore 如何在运行时删除端点/路由
- python - 用于从线性回归计算 R 平方的 NP 数组
- mysql - --init-file 参数是否支持通过 .sql 文件创建过程?