怎么用PHP特性trait实现简易Laravel Facade
发表于:2025-01-21 作者:千家信息网编辑
千家信息网最后更新 2025年01月21日,今天小编给大家分享一下怎么用PHP特性trait实现简易Laravel Facade的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完
千家信息网最后更新 2025年01月21日怎么用PHP特性trait实现简易Laravel Facade
今天小编给大家分享一下怎么用PHP特性trait实现简易Laravel Facade的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
简述
Facade
可以有效帮我实现方法的静态化。Laravel
大部分的扩展包都使用了 Facade
。
下面的简易 Facade
主要是利用 PHP 的特性 trait
,魔术方法 __callStatic
,反射类 ReflectionClass
。
使用场景
后台系统大部分都会有类似这样的操作:
这样似乎没有什么问题,但是还会存在下面这样的:
$article = Article::find($id);if (!$article) { throw new \Expection("资源不存在");}$article->delete();这样写法十分不优雅。
上代码
1、首先我们应该要有一个 Service
2、新建一个 Trait
trait 为了多继承而存在的,可以去 PHP官网 看文档。
newInstanceArgs(); // 调用该不存在的方法 $model = call_user_func_array([$instance, $method], [$arg]); // 如果存在复杂操作交给 callback return isset($args[2]) ? $args[2]($model) : self::callback($model, $method); }}首先我们关注
__callStatic
这个魔术方法。 当调用不存在的静态方法时会触发该方法。和他相似的魔术方法是__call
。这是使用__callStatic
是为了达到Facade
的效果。
__callStatic
有两个回调参数$method
是被调用的且不存在的方法
,$args
是$method
方法中所传递的参数(数组形式)。这样一个简易的
trait
就完成了。使用
我们新建一个
command
$ php artisan make:command TestCommand写入下面的内容
load('author'); }); }}其中的
Article
模型需要自己去创建。
接下来就可以看看效果了:$ php artisan test:test以上就是"怎么用PHP特性trait实现简易Laravel Facade"这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注行业资讯频道。
方法
简易
知识
篇文章
特性
内容
大部分
面的
魔术
参数
效果
资源
静态
不同
复杂
很大
有效
相似
优雅
接下来
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
北斗卫星授时服务器
贵阳的网络技术职业学校
优质软件开发口碑好
saas系统的数据库用什么软件
怎么关闭服务器电源
微信获取服务器地址失败
开展全县网络安全法工作
psql数据库恢复命令
COS服是什么服务器
网络安全教育班会活动课
没有权限访问服务器的文件
如何做好敏捷软件开发风险
护苗网络安全课堂黑板报
dns服务器指定ip
技术数据库的表数量是否有限
贝思瑞网络技术有限公司
水下声通信网络技术研究现状
特朗普解雇美国网络安全局局
魔兽世界永久60服务器人口
深圳市天高网络技术有限公司
恢复数据库报错1064
pc桌面软件开发内置字体
电力网络安全自查总结
服务器能控制几个led
微信获取服务器地址失败
福州付费聊天软件开发
中国银行数据库管理
苹果手机激活连不到服务器
肇庆免费的冷库软件开发
泰安GIS软件开发招聘