PHP:反思API – 很少添加到PHP中

反思API是操作OOP的东西,看起来好像大多数开发人员甚至没有意识到或者从未使用过.

反思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框架中使用吗?
为什么使用次数较少,有什么问题呢?

反思绝对是留在这里.您可以使用它,但请记住,对于简单的UseCases而言,它被认为是缓慢而过度的.使用 Classes/Objects function package中的一个功能通常是更快的选择.

反思派生的一个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 ]
  }
}

相关文章

Hessian开源的远程通讯,采用二进制 RPC的协议,基于 HTTP 传输。可以实现PHP调用Java,Python,C#等多语...
初识Mongodb的一些总结,在Mac Os X下真实搭建mongodb环境,以及分享个Mongodb管理工具,学习期间一些总结...
边看边操作,这样才能记得牢,实践是检验真理的唯一标准.光看不练假把式,光练不看傻把式,边看边练真把式....
在php中,结果输出一共有两种方式:echo和print,下面将对两种方式做一个比较。 echo与print的区别: (...
在安装好wampServer后,一直没有使用phpMyAdmin,今天用了一下,phpMyAdmin显示错误:The mbstring exte...
变量是用于存储数据的容器,与代数相似,可以给变量赋予某个确定的值(例如:$x=3)或者是赋予其它的变...