反射在容器中有着你不看源码根本了解不到的重要性,一定要好好看看本文
不知道大家有没有了解过GO的反射机制,咔咔在当时看了go的反射机制后说实话有点晕乎乎的。
但是在后来看了PHP的反射之后,不仅对go的反射有了一定的深入了解,并且对于PHP的反射也是更好的理解。
反射这一概念是在PHP5.0被引出来的,在目前使用的框架中咔咔知道的就有thinkphp和laravel都使用了反射来实现依赖注入。
对于反射的理解:其实就是从根获取根以外的东西,放在编程中讲就是只要知道一个类就可以知道这个类所有的属性和方法。
案例
这只是一个简单的实现案例,获取类的全部方法和属性。可以看下图中的打印结果跟TestReflection是否一致。
这个也从侧面表现出现一个问题,就是会暴露出来一些本不应该暴露出来的信息。
关于反射提供的接口还有很多,这里就介绍几个常用的,其余的在框架源码中解析。
使用反射执行一个类的方法
打印出来的结果就是咔咔
使用反射执行一个类中带参数的方法
使用反射执行一个类中不带参数的方法
其它的方法你们自己可以尝试尝试,因为这个反射的接口在平时基础开发是不怎么用的,这咔咔给大家介绍的都是后边在阅读源码都是可以用的到的。
既然了解到了反射,那么反射可以做什么事情呢!其中有一个功能点自动生成文档。
反射到这里就简单的了解一下,至于还想了解更多的接口使用可以去官方查看对应的接口信息。
在了解完反射之后就要开始进入正题了,就需要正式进入我们的容器环节了。只有上边的基础打好接下来的容器才能更好的理解。
坚持学习、坚持写博、坚持分享是咔咔从业以来一直所秉持的信念。希望在偌大互联网中咔咔的文章能带给你一丝丝帮助。我是咔咔,下期见。
四、必会反射机制