Reflection API是操作OOP的好东西,看起来大多数开发人员甚至都没有意识到这一点,或者从未使用过。
反思API声明:
PHP 5带有完整的反映 添加能力的API 逆向工程类,接口, 功能,方法和扩展。 另外,反射API 提供检索文档评论的方法 对于函数,类和方法。
问题:
此功能目前不是 记录;只有它的参数列表是 可用。
在哪里可以找到它的文档?
答案 0 :(得分:15)
反思绝对是留下来的。您可以使用它,但请记住,对于简单的UseCases,它被认为是缓慢且过度的。使用Classes/Objects function package中的一个功能通常是更快的选择。
一个UseCase,其中Reflection派上用场,就是在解析类的DocBlock中的注释时。例如,PHPUnit使用注释@test告诉PHPUnit TestRunner它应该将方法视为测试。 @covers注释将帮助它收集代码覆盖率数据。 FLOW3框架使用Annotations for their AOP framework。
不幸的是,PHP的一些新增功能> 5.3,尚未记录那么多。 Just look at the SPL。一样。这并不意味着你不能使用它。 Reflection API非常具有表现力,很容易从方法名称中找出。谷歌经常有关于如何使用某些扩展的博客文章。对于Reflection API,请查看:
和SPL
我最近发现的一些很酷的东西。从5.1.2开始,您也可以invoke the Reflection API from the command line:
$php --rf strtotime
Function [ <internal:date> function strtotime ] {
- Parameters [2] {
Parameter #0 [ <required> $time ]
Parameter #1 [ <optional> $now ]
}
}