大家好 我是 Laravel 的新手,我遇到了理解需要别名和提供程序的问题,这些别名和提供程序位于 config/app.php 文件中。另外,为什么在每个别名和提供者的末尾使用::class,例如
'App' => Illuminate\Support\Facades\App::class, Illuminate\Auth\AuthServiceProvider::class
如果省略::class 会怎么样。
请大佬们能不能简单的解释一下
最佳答案
::class
这是一种告诉代码读取类的实际名称而不是类本身的方法。例如,如果您将 use Illuminate\Support\Facades\App
添加到文件的标题中,您将能够通过 App::class
简单地使用,这在将来可能会阻止代码中的大量替换,因此您只需要替换标题行。而且,如果您不使用 ::class
,则必须使用完全限定类名的字符串。
好吧,你可能实际上不需要别名,但 Laravel 在内部使用它们进行一些操作。
根据他们的 documentation on Facades :
In the context of a Laravel application, a facade is a class that provides access to an object from the container
这意味着您可以静态访问任何别名方法。
截至 documentation on Service Providers :
Service providers are the central place of all Laravel application bootstrapping. In general, registering things, including registering service container bindings, event listeners, middleware, and even routes
如果您希望在系统发生任何其他事情之前加载特定数据、注册不同的服务、有时下载组件,那么这将是必要的。
如果您没有良好的使用习惯,其中一些对您来说是不可见的,如果您决定将部分代码转换为独立模块,则可能需要一些。
但主要是,它们的必要性主要在 Laravel 方面而不是在开发人员方面,也就是说,考虑您对框架和(或)引导/服务包含的经验。
关于php - Laravel 中别名和提供者的实际需求是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51961323/