拦截对已定义的PHP方法的调用

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了拦截对已定义的PHP方法的调用脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试创建一个Trait来制作“freezable value objects”. (避免位置参数和伸缩构造函数.)这意味着setter可用于初始化对象,然后调用 – > freeze(),这使得对象“不可变”.设置者仍然会在那里,但是在被叫时,他们会抛出异常.这可以通过$this-> assertIsWrITable()来实现;在每个二传手的开始打电话.但是我想避免这种情况(因为很容易忘记这样的调用)并自动进行检查.有没有办法拦截对已定义方法调用

解决方案中不可接受

>打破类型提示和/或静态代码分析的方法
>依赖于特殊的PHP扩展

我正在使用PHP 7.0.

解决方法

如果不修改运行时(使用 Runkituopz等扩展或在加载PHP代码时对PHP代码执行代码转换(使用流包装魔),则无法做到一点.

脚本宝典总结

以上是脚本宝典为你收集整理的拦截对已定义的PHP方法的调用全部内容,希望文章能够帮你解决拦截对已定义的PHP方法的调用所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。