php - Laravel 中别名和提供者的实际需求是什么

标签 php laravel

大家好 我是 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/

相关文章:

PHP Excel 向带有特殊字符的字符串返回 false

php - 调用另一个 laravel 项目的 API

php - 如何在ubuntu 14.04上安装php5.6开发扩展

php - 将 php 脚本放入图像标签的 src 中是否比正常情况慢,慢了多少?

php - Laravel withCount() 子查询

php - Laravel 和 Simpletest

php - Laravel - "artisan tinker"-> mkdir() : Permission denied

php - 如何检查多维数组中是否存在特定数组键

php - MySQL 文本数据被某些符号截断

php - 根据 URL 示例 (www.example.co.uk/essex.php) 从 MySQL 数据库中选择数据