首页 > 解决方案 > 带有反射参数的 Laravel 类方法

问题描述

我通常使用这样的参数:

public function test($parameter)
{
 echo 'Parameter value: ' . $parameter;
}

在查看laravel 服务容器时,我看到了这段代码。

 public function __construct(UserRepository $users)
    {
        $this->users = $users;
    }

根据它使用反射的文档。但我不明白。

我不知道参数是如何UserRepository $users工作的。这是别名还是什么?

标签: laravellaravel-5.4

解决方案


这称为类型提示,用于在构造函数中注入依赖项或验证将正确类型的参数传递给函数。注入只是意味着如果使用该make方法调用该类,Laravel 将自动提供构造函数所需的类的实例。

例如,如果您有一个函数public function something(string $something),如果将除 a 之外的任何其他类型传递给此函数,则会引发错误,请String确保使用正确的数据。

来自 laravel 文档:

或者,重要的是,您可以在由容器解析的类的构造函数中“类型提示”依赖关系,包括控制器、事件侦听器、队列作业、中间件等。实际上,这就是容器应该如何解析大多数对象的方式。
例如,您可以在控制器的构造函数中键入提示由您的应用程序定义的存储库。存储库将自动解析并注入到类中:


推荐阅读