ThinkPHP容器中反射的运用示例

介绍

这篇文章主要介绍了ThinkPHP容器中反射的运用示例,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获、下面让小编带着大家一起了解一下。

<节id=昂谩眃ata工具=癿dnice编辑器”数据网页=" https://www.mdnice.com ">

invokeClass方法详细解析(反射的使用)

不管是阅读完上边的代码流程,还是上图的流程图,肯定都知道了最终代码会走向一个方法<代码> invokeClass>

这个方法中全部都是利用反射的知识点,不会的在去看上文或者之前的文章吧!

在<代码> invokeClass 方法中,最重要的就是绑定参数的这个方法<代码> bindParams>

所以在容器中反射起到的作用有多大就不用在去做过多的说明了。

在这之前需要把这块说明一下,看到这个__make方法,咔咔是记忆尤深哈!

这个方法在之前学习配置源码配置那一篇文章中咔咔说暂时略过,因为当时所储备的知识点和框架代码执行流程还没到说明__make这个方法的阶段。

为了就是在容器这里详细的说明__make这个方法的作用。

<图数据工具=癿dnice编辑器”>  ThinkPHP容器中反射的运用示例

当你打印反映这个变量的值时会返回俩个反射类的对象,如下图。

 ThinkPHP容器中反射的运用示例”>代码<代码>反映→美元hasMethod (& # 39; __make& # 39;) </代码>就是判断此反射类里边是否存在__make函数</p> <p data工具=癿dnice编辑器”>代码<代码>方法=new ReflectionMethod美元(美元)类,& # 39;__make& # 39;);> </代码就是执行反射类的一个方法,这里就指的是__make方法</p> <p data工具=癿dnice编辑器”>当断点这个方法就会返回俩个存在__make反射类,这里是因为断点了只有显示了俩个反射类。</p> <p data工具=癿dnice编辑器”>这里主要谈论认为\配置。</p> <p data工具=  ThinkPHP容器中反射的运用示例”>最后一行代码<代码>方法→美元isPublic (),,方法→美元isStatic() </代码>就是判断方法是不是公公共的,,判断方法是不是静态的</p> <p data工具=癿dnice编辑器”>直到运行到<代码> args=这→美元bindParams(方法、var美元);</代码>这行才会进入到<代码> bindParams </代码>方法,这个方法也会在下文给出详细的解析。</p> </节> <p class=感谢你能够认真阅读完这篇文章,希望小编分享的“ThinkPHP容器中反射的运用示例”这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

ThinkPHP容器中反射的运用示例