反思API声明:
PHP 5 comes with a complete reflection
API that adds the ability to
reverse-engineer classes,interfaces,
functions,methods and extensions.
Additionally,the reflection API
offers ways to retrieve doc comments
for functions,classes and methods.
题:
为什么它的大多数方法/属性几乎没有文档?您在文档中看到此消息:
This function is currently not
documented; only its argument list is
available.
在哪里找到它的文档?
>它是未来兼容的,换句话说,我可以在我的MVC框架中使用吗?
为什么使用次数较少,有什么问题呢?
反思派生的一个UseCase是解析类的DocBlock中的注释.例如,PHPUnit使用注释@test来告诉PHPUnit TestRunner它应该考虑一种方法进行测试. @covers注释将帮助它收集代码覆盖率数据. FLOW3框架利用了Annotations for their AOP framework.
不幸的是,PHP的一些新增功能5.3,还没有记录那么多. Just look at the SPL.同样的事情.这并不意味着你不能使用它. Reflection API非常有表现力,很容易从方法名称中找出.而Google通常会有关于如何使用某些扩展的博文.对于Reflection API,请查看:
> http://www.phpriot.com/articles/reflection-api
> http://mark-story.com/posts/view/using-the-php-reflection-api-for-fun-and-profit
> http://www.tuxradar.com/practicalphp/16/4/0
> http://weierophinney.net/matthew/archives/125-PHP-5s-Reflection-API.html
和SPL
> http://www.phpro.org/tutorials/Introduction-to-SPL.html
我刚才发现的很酷截至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 ] } }