Php Laravel中对别名和提供者的实际需求是什么
大家好 我对Laravel很陌生,我在理解config/app.php文件中的别名和提供者时遇到了问题。另外,为什么在每个别名和提供程序的末尾使用::classPhp Laravel中对别名和提供者的实际需求是什么,php,laravel,Php,Laravel,大家好 我对Laravel很陌生,我在理解config/app.php文件中的别名和提供者时遇到了问题。另外,为什么在每个别名和提供程序的末尾使用::class 'App' => Illuminate\Support\Facades\App::class, Illuminate\Auth\AuthServiceProvider::class 如果省略::class会怎么样 请大家用简单的术语解释一下::class这是一种告诉代码读取类的实际名称而不是类本身的方法。例如,如果您在文件头
'App' => Illuminate\Support\Facades\App::class, Illuminate\Auth\AuthServiceProvider::class
如果省略::class会怎么样
请大家用简单的术语解释一下::class这是一种告诉代码读取类的实际名称而不是类本身的方法。例如,如果您在文件头中添加了
use illumb\Support\Facades\App
,则只需执行App::class
,即可使用,这可能会在将来阻止代码中的大量替换,因此您只需替换头行。此外,如果不使用::class
,则必须使用完全限定为类名的字符串
实际上,您可能不需要别名,但Laravel在内部使用别名进行多个操作
根据他们的意见:
在Laravel应用程序的上下文中,facade是一个类,提供从容器访问对象的权限
这意味着您可以静态访问任何别名方法
截至:
服务提供商是所有Laravel应用程序引导的中心。一般来说,注册事务,包括注册服务容器绑定、事件侦听器、中间件,甚至路由
如果您希望在系统上发生任何其他事情之前加载特定数据,注册不同的服务,有时下载组件,那么这将是必要的
如果没有良好的实践,其中一些是不可见的,如果您决定将部分代码转换为独立模块,则可能需要一些
但主要来说,它们的必要性主要是在Laravel方面,而不是在开发人员方面,也就是说,考虑到您在框架和(或)引导/包含服务方面的经验。添加到@Rafaels answer。关于
::class
语法
这个特性来自PHP5.5,因此您不必将类名保存在字符串中。Classname::class
将给出完整的类路径
use App\Services\Service1\ServiceClass1;
//...
// suppose you want an array of some classes you can use this syntax
public $realation= [
Serviceclass1::class, // Equivalent to "App\Services\Service1\ServiceClass1"
];
从
可以使用ClassName::class获得完全限定的名称
类的类名称。例如:
::类这是一种告诉代码读取类的实际名称而不是类本身的方法。例如,如果您在文件头中添加了
use illumb\Support\Facades\App
,则只需执行App::class
,即可使用,这可能会在将来阻止代码中的大量替换,因此您只需替换头行。此外,如果不使用::class
,则必须使用完全限定为类名的字符串。根据我的经验,每两行代码就有一个这么大的字符串是很可怕的。@Rafael,谢谢你的完美解释。请您也解释一下为什么在Laravel中需要别名和提供者,然后将其作为解决方案,以便我可以接受:)希望澄清:)这些文档中的一些只会随着时间的推移对你有意义。例如,默认情况下,Laravel带有雄辩的功能,我使用的是条令,为此,我也必须阅读并理解很多。对不起,伙计,请你也在解决方案中添加::类的解释,这样看起来更好:)当然,一个很好的回答@RafaelFunny是,我在使用PHP 6年后才真正开始使用它,从来没有考虑过在这之前用字符串写东西有多烦人。哈哈,是的,没错