设为首页 收藏本站
查看: 399|回复: 0

[经验分享] Addendum PHP Reflection Annotations简介

[复制链接]

尚未签到

发表于 2017-3-23 08:40:19 | 显示全部楼层 |阅读模式
  Addendum PHP Reflection Annotations 是一个PHP的开源,它的网址在:  http://code.google.com/p/addendum/
  Addendum PHP Reflection Annotations是什么?如果你会JAVA,那么,你肯定了解 JAVA Reflection Annotations。 对于不懂JAVA的人,需要说明一下,它倒底是什么。很简单,它就是一个Reflection 。但这个Reflection 并不是一般的Reflection ,因为它操作的是Annotations。Annotations指的是什么?是代码中的文档与注解。
  PHP中的很好的Reflection 可用。但是,却没有Reflection Annotations ,因此,这一代码就让你能够使用这样的功能。
  这东西有什么用?用过JAVA Reflection Annotations肯定了解,它能帮助你省下大量的代码。原理是什么呢?因为,有了它,代码中的注解,也是代码了。并且,通过这一手段,能使你实现完全的松耦合。
  如果你用过PHP的EXPDO,那么,你肯定会发现,其中也有与此相类似的代码。这就是说,如果实现ORM,那么,它能够为你的ORM对象,进行一个前置的操作,比如,数据验证,如同JAVA 中ORM实现的那样。这也是Addendum最重要的使用场合。
  Addendum PHP Reflection Annotations 共有三个文件。 annotations.php 是主程序文件。  annotation_parser.php 则是类型解析器文件。 doc_comment.php 则是处理文档注解的。 
  使用Addendum 最关键的是,首先需要在类中添加“Annotations”模式的注解。比如以下的例子:

/** @Persistent */
class Person {    // some code }
/** @Secured(role = "admin", level = 2) */
class Administration {  // some code }
class RolesAllowed extends Annotation {}  
/** @RolesAllowed({'admin', 'web-editor'}) */
class CMS {  // some code }
  Addendum 对函数的参数也能反射,当然,这也需要你给出符合格式的注解,如:

function addUser(/** unique */ $userName, /** integer */ userId)
{some code }
  由此可见,其功能是相当强大的。Addendum同时提供了类的生成器?可惜的是JAVA的JAR包。所以,无法了解更多的细节。精通JAVA的不妨可以测试一下它的生成器。更详细的文档,还是直接去看Addendum的项目主页吧。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-353809-1-1.html 上篇帖子: 程序人生之php篇 下篇帖子: 【转】php函数引用
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表