laravel 门面 facad 源码分析

 

为什么代码中写Route就可以调用Illuminate\Support\Facades\Route呢?这个就是别名的用途了,很多门面都有自己的别名,这样我们就不必在代码里面写use Illuminate\Support\Facades\Route,而是可以直接用Route了。

 

class_alias 的作用 


之前一直模糊不清楚
1 本来门面类 需要完整的路径的 Illuminate\Support\Facades\Route::get()这样的方式
2 框架 给大部分的门面类 起了一个别名 在config/app.php aliases中
3 每次框架会判断 是否是
       if (isset($this->aliases[$alias])) {
            return class_alias($this->aliases[$alias], $alias);
        }

  判断这个别名是否在门面别名数组中  如果在的话  就给他起一个别名    就是

Illuminate\Support\Facades\Routed 的别名  设置成Router   挺绕的


实际的应用:
\Cache::get(); 签名有个斜杠... 别名是顶级类
门面服务是在什么时候 注册启动的呢
框架在启动的过程中 会 先做一些初始化的工作 比如加载环境变量 初始化配置文件 其中就包括 注册门面的服务


源码的东西写的比较 基本都是看完的心得 慢慢补充








posted @ 2020-08-07 09:50  天梯小蔡  阅读(148)  评论(0编辑  收藏  举报