首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP: Reflection -对PHP的一个很好的补充

PHP: Reflection -对PHP的一个很好的补充
EN

Stack Overflow用户
提问于 2010-03-04 07:17:38
回答 1查看 1.9K关注 0票数 9

Reflection在操作OOP方面是一件很棒的事情,看起来大多数开发人员甚至都没有意识到这一点,或者从未使用过它。

反射API声明:

PHP 5附带了一个完整的反射API,它增加了反向工程类、接口、函数、方法和扩展的能力。此外,反射API还提供了检索函数、类和方法的文档注释的方法。

问题:

  • 为什么它的大多数方法/属性几乎没有文档?您可以在文档中看到以下消息:

该函数目前没有文档化;只有它的参数列表可用。

哪里可以找到它的文件呢?

  • 换句话说,我可以在我的MVC框架中使用它吗?
  • 为什么它不常使用,它有什么问题吗?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-03-04 07:43:49

倒影肯定会留在这里。您可能会使用它,但是请记住,对于简单的UseCases来说,它是缓慢的和过度的。在类/对象函数包中使用其中一个函数通常是更快的选择。

当解析类的UseCase中的注释时,反射就会派上用场。例如,PHPUnit使用注释@test来告诉PHPUnit TestRunner,它应该将一个方法看作一个测试。@covers注释将帮助它收集代码覆盖数据。FLOW3框架使用对其AOP框架的注释

不幸的是,PHP > 5.3中的一些较新的添加还没有记录那么多。只要看看SPL。同样的事情。但这并不意味着你不能使用它。反射API非常有表现力,很容易从方法名称中识别出来。谷歌经常有关于如何使用某些扩展的博客文章。对于反射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开始,您也可以使用从命令行调用反射API

代码语言:javascript
复制
$php --rf strtotime
Function [ <internal:date> function strtotime ] {

  - Parameters [2] {
    Parameter #0 [ <required> $time ]
    Parameter #1 [ <optional> $now ]
  }
}
票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2377464

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档