Laravel源码里面为什么要用::class语法?
来源:互联网 发布:超凡战队 知乎 编辑:程序博客网 时间:2024/06/07 17:03
源问题:https://www.zhihu.com/question/52656676
自 PHP 5.5 起,关键词 class 也可用于类名的解析。使用 ClassName::class 你可以获取一个字符串,包含了类 ClassName 的完全限定名称。这对使用了 命名空间 的类尤其有用。
$app->singleton( Illuminate\Contracts\Http\Kernel::class, App\Http\Kernel::class ); $app->singleton( Illuminate\Contracts\Console\Kernel::class, App\Console\Kernel::class ); $app->singleton( Illuminate\Contracts\Debug\ExceptionHandler::class, App\Exceptions\Handler::class );这段bootstrap/app.php代码中既然已经写了类的完全限定名,为什么还要用::class语法?
解释:
因为 ::class 表示是字符串。此处代码等同于:
$app->singleton( 'Illuminate\Contracts\Http\Kernel', 'App\Http\Kernel' ); $app->singleton( 'Illuminate\Contracts\Console\Kernel', 'App\Console\Kernel' ); $app->singleton( 'Illuminate\Contracts\Debug\ExceptionHandler', 'App\Exceptions\Handler' );
用 ::class 的好处在于 IDE 里面可以直接改名一个 class,然后 IDE 自动处理相关引用。
同时,PHP 执行相关代码时,是不会先加载相关 class 的。
同理,代码自动化检查 inspect 也可以正确识别 class。
阅读全文
0 0
- Laravel源码里面为什么要用::class语法?
- Class.forName的作用?为什么要用?
- Class.forName()的作用?为什么要用?
- Class.forName的作用?为什么要用?
- Class.forName的作用?为什么要用?
- Class.forName的作用?为什么要用?
- laravel(一)-为什么要使用框架
- 为什么DX里面的对象全部要用指针?
- 为什么要 Class.forName( driverClass );
- Class.forName的作用以及为什么要用它
- Class.forName的作用以及为什么要用它【转】
- Class.forName的作用以及为什么要用它
- Class.forName的作用以及为什么要用它
- Class.forName的作用以及为什么要用它【转】
- Class.forName的作用以及为什么要用它【转】
- Class.forName的作用以及为什么要用它【转】
- Class.forName的作用以及为什么要用它
- Class.forName的作用以及为什么要用它【转】
- LASSO推导及其在恒星光谱上的应用
- 事件的分发传递机制
- 数据库阿里连接池 druid配置详解
- YouTube-8M: A Large-Scale Video Classification Benchmark
- SSH proxycommand:利用跳板机让不在同一局域网的机器ssh直连
- Laravel源码里面为什么要用::class语法?
- Flash开发IOS证书过期问题
- SIFT特征匹配算法介绍——寻找图像特征点的原理
- Office 2010/2013 图标显示不正常
- 关于OkHttp的用法
- 基于稀疏主成分分析的股票研究
- 在ubuntu14.4里编译UBOOT出错
- 使用Crashlytics来保存应用崩溃信息
- Violence Detection in Video Using Computer Vision Techniques