拉拉维尔对别名和提供程序的实际需求是什么



大家好 我对Laravel很陌生,我遇到了理解位于config/app.php文件中的别名和提供程序的需求的问题。另外,为什么在每个别名和提供程序的末尾使用 ::class ,例如

'App' => IlluminateSupportFacadesApp::class,   IlluminateAuthAuthServiceProvider::class

如果省略 ::类怎么办。

请你们用简单的术语解释一下吗

::class

这是一种告诉代码读取类的实际名称而不是类本身的方法。例如,如果您已将use IlluminateSupportFacadesApp添加到文件的标头中,则只需执行App::class即可使用,这可以防止将来在代码中进行大量替换,因此您只需要替换标题行。而且,如果不使用::class则必须使用类名完全限定的字符串。

好吧,您实际上可能不需要别名,但是Laravel在内部使用它们进行多项操作。

根据他们关于外墙的文件:

在Laravel应用程序的上下文中,外观是一个类,它提供对容器中对象的访问

这意味着您可以静态访问任何别名方法。

截至有关服务提供商的文档:

服务提供商是所有Laravel应用程序引导的中心位置。一般来说,注册事物,包括注册服务容器绑定、事件侦听器、中间件,甚至路由

如果您希望在系统上发生任何其他事情之前加载特定数据,注册不同的服务,有时下载组件,这将是必要的。

如果您没有使用它们的良好实践,其中一些对您来说是不可见的,如果您决定将代码的某些部分转换为独立模块,则可能需要其中一些。

但主要是,它们的必要性主要在Laravel方面而不是在开发人员方面,也就是说,考虑到您对框架和(或(引导/服务包含的经验。

添加到@Rafaels答案中。 关于::class语法。

这个功能在 php 5.5 中提供,这样你就不必将类名保留在字符串中。Classname::class将提供完整的类路径

use AppServicesService1ServiceClass1;
//...
// suppose you want an array of some classes you can use this syntax
public $realation= [
Serviceclass1::class, // Equivalent to "AppServicesService1ServiceClass1"
];

来自文档

可以使用 ClassName::class 来获取完全限定的名称 类名的类。例如:

最新更新