六、总结
先来一份门面流程图,可以更清晰的看到门面类的具体执行流程。
门面类的源码很是简单,除了几个不太常见的知识点,代码相信都看的明白。
这里主要是对阅读完门面类后,做一个小总结。
门面类主要是结合了容器来实现的一个功能,因为需要容器来返回对应的实例,关于容器的文章也已经完成了,如果对容器有不会的可以在文章的开头去看对应的文章即可。
本文中给大家介绍了门面在容器中如何使用,并且给大家提供了最优的使用方式,这里的最优是咔咔个人见解,因为这种方式咔咔使用了接近俩年了。
无论从代码的健壮性还是扩展性都是非常实用的。
再就是关于static关键字,给大家做的一点点冷门知识得补充,当一个类继承一个类时,在父类实用static关键字时,默认调用的子类的方法。
这里的总结只是针对于本文的实例。
其实在这里咔咔还想给大家说明一个点就是return call_user_func_array([static::createFacade(), $method], $params);
因为在以前的用法的哥参数就直接是方法,但是在这里碰到了数组形式,那么这个数组中的俩个值都代表的是什么呢!
第一个值为实例,第二个值为实例中的方法。
关于call_user_func_array这个方法的使用咔咔就不去做案例给大家看了,只需要知道它会去执行传入得方法即可。
到这里关于门面的源码解析就结束了,最重要的还是理解容器,因为门面就是在容器的基础上实现的,这也就是咔咔先写容器在写门面的原因。
还有就是关于门面的使用咔咔也给出了方案,如你有更好的方案可以在评论区给一个大概的思路。