电子发烧友App

硬声App

0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示
电子发烧友网>电子资料下载>电子资料>Xannotation高性能的PHP注解分析器

Xannotation高性能的PHP注解分析器

2022-06-23 | zip | 0.09 MB | 次下载 | 2积分

资料介绍

授权协议 LGPL
开发语言 C/C++
操作系统 跨平台
软件类型 开源软件
所属分类 插件和扩展

软件简介

phpdoc-parser

高性能的 PHP 注解分析器,基于 PHP7.x 开发的一个PHP扩展

An extension for PHP document parsing. written in C code.

Author:Josin 774542602@qq.com

使用环境

PHP7.x

cmake编译或者PHP扩展编译

1、扩展编译

/usr/path_to_php/bin/phpize

./configure?--with-php-config=/usr/path_to_php/php-config

make?-j?&&?sudo?make?install?-j

echo?'xannotation.so'?>>?/usr/path_to_php/php.ini

?

2、cmake

需要cmake 3.10版本

修改?CMakeLists.txt中的?php?路径,?然后执行如下命令即可?????

cmake?.即可

?

简洁的APIs

Xan 类构造函数

final?class?Xan{
????function?__construct();}

?

类注解: Xan::getClassDocComment($classNameOrObject)

/**
?*?返回类的注解字符串
?*?
?*?@param?$classNameOrObject?类名称或者对象
?*/function?getClassDocComment($classNameOrObject){
????return?$this;
}

?

方法注解:Xan::getMethodDocComment($classNameOrObject, $methodName)

/**
?*?获取方法的注解信息,返回注解字符串
?*
?*?@param?$classNameOrObject?类名称或者对象
?*?@param?$methodName????????方法名
?*/function?getMethodDocComment($classNameOrObject,?$methodName){}

?

解析注解:Xan::parseDocComment($docComments)

/**
?*?返回一个包含注解信息的对象,[body]包含的是说明信息,其余的注解每一个注解是一个数组
?*?如:
?*?/**
?*??*?类对象A
?*??*
?*??*?@Route("/hello/world")
?*??*?@NotEmpty(,?)
?*??*/
?*?class?A
?*?{
?*?}
?*
?*?那么返回结果如下:
?*?Array
?*?(
?*?????[annotations]?=>?Array
?*?????????(
?*?????????????[Route]?=>?Array
?*?????????????????(
?*?????????????????????[1]?=>?hello/world
?*?????????????????)
?*?
?*?????????????[method]?=>?Array
?*?????????????????(
?*?????????????????????[3]?=>?vs
?*?????????????????????[value?se]?=>?hello
?*?????????????????????[yes]?=>?fsdfls
?*?????????????????)
?*?
?*?????????)
?*?
?*?????[num]?=>?2
?*?????[body]?=>?
?*?)
?*
?*?@param?$docComments?需要解析的注解信息
?*/function?parseDocComment($docComments){}

?

获取数组形式的注解:Xan::getParseResult($docComments)

/**
?*?同?parseDocComent()?结果,区别在于返回的数组还是对象
?*/function?getParseResult($docComments){}

?

获取类的所有方法的注解信息:parseAllMethodsDocComment($objectOrName)

/**
?*?Function:?`parseAllMethodsDocComment`?used?to?parsing?all?methods?which?in?class{$objectOrName}
?*?return?the?object?contains?the?result,?the?result?format?like?this:
?*?
?*?Xan?Object
?*?(
?*?????[num]?=>?3
?*?????[annotations]?=>?Array
?*?????????(
?*?????????????[world]?=>?Array
?*?????????????????(
?*?????????????????????[annotations]?=>?Array
?*?????????????????????????(
?*?????????????????????????????[Route]?=>?Array
?*?????????????????????????????????(
?*?????????????????????????????????????[1]?=>?hello/world
?*?????????????????????????????????)
?*
?*?????????????????????????????[method]?=>?Array
?*?????????????????????????????????(
?*?????????????????????????????????????[3]?=>?vs
?*?????????????????????????????????????[value?se]?=>?hello
?*?????????????????????????????????????[yes]?=>?fsdfls
?*?????????????????????????????????)
?*
?*?????????????????????????)
?*
?*?????????????????????[num]?=>?2
?*?????????????????????[body]?=>
?*?????????????????)
?*
?*?????????????[getMethodDocComment]?=>?Array
?*?????????????????(
?*?????????????????????[annotations]?=>
?*?????????????????????[num]?=>?0
?*?????????????????????[body]?=>?获取方法的注解信息,返回一个对象
?*?????????????????)
?*
?*?????????????[getClassDocComment]?=>?Array
?*?????????????????(
?*?????????????????????[annotations]?=>
?*?????????????????????[num]?=>?0
?*?????????????????????[body]?=>?返回类的注解信息
?*?????????????????)
?*?????????)
?*?)
?*?
?*
?*?The?result?contains?the?`num`?key?means?the?methods?number
?*?the?`annotations`?key?contains?the?result?array,?each?key-value?pair?contains?the?key(The?function?name)?&?the?value(array)
?*?each?value?contains?three?key-value?pairs:
?*?`annotations`:?The?annotations?the?function?contains
?*?`num`????????:?The?number?of?the?annotations
?*?`body`???????:?The?body?of?the?annotations
?*
?*?@param?$objectOrName??The?class?name?or?object?which?you?want?to?obtain?the?annotations
?*?@return?this??????????The?object?contains?the?value
?*/function?parseAllMethodsDocComment($objectOrName)?:?this{}
?

下载该资料的人也在下载 下载该资料的人还在阅读
更多 >

评论

查看更多

下载排行

本周

  1. 1山景DSP芯片AP8248A2数据手册
  2. 1.06 MB  |  532次下载  |  免费
  3. 2RK3399完整板原理图(支持平板,盒子VR)
  4. 3.28 MB  |  339次下载  |  免费
  5. 3TC358743XBG评估板参考手册
  6. 1.36 MB  |  330次下载  |  免费
  7. 4DFM软件使用教程
  8. 0.84 MB  |  295次下载  |  免费
  9. 5元宇宙深度解析—未来的未来-风口还是泡沫
  10. 6.40 MB  |  227次下载  |  免费
  11. 6迪文DGUS开发指南
  12. 31.67 MB  |  194次下载  |  免费
  13. 7元宇宙底层硬件系列报告
  14. 13.42 MB  |  182次下载  |  免费
  15. 8FP5207XR-G1中文应用手册
  16. 1.09 MB  |  178次下载  |  免费

本月

  1. 1OrCAD10.5下载OrCAD10.5中文版软件
  2. 0.00 MB  |  234315次下载  |  免费
  3. 2555集成电路应用800例(新编版)
  4. 0.00 MB  |  33566次下载  |  免费
  5. 3接口电路图大全
  6. 未知  |  30323次下载  |  免费
  7. 4开关电源设计实例指南
  8. 未知  |  21549次下载  |  免费
  9. 5电气工程师手册免费下载(新编第二版pdf电子书)
  10. 0.00 MB  |  15349次下载  |  免费
  11. 6数字电路基础pdf(下载)
  12. 未知  |  13750次下载  |  免费
  13. 7电子制作实例集锦 下载
  14. 未知  |  8113次下载  |  免费
  15. 8《LED驱动电路设计》 温德尔著
  16. 0.00 MB  |  6656次下载  |  免费

总榜

  1. 1matlab软件下载入口
  2. 未知  |  935054次下载  |  免费
  3. 2protel99se软件下载(可英文版转中文版)
  4. 78.1 MB  |  537798次下载  |  免费
  5. 3MATLAB 7.1 下载 (含软件介绍)
  6. 未知  |  420027次下载  |  免费
  7. 4OrCAD10.5下载OrCAD10.5中文版软件
  8. 0.00 MB  |  234315次下载  |  免费
  9. 5Altium DXP2002下载入口
  10. 未知  |  233046次下载  |  免费
  11. 6电路仿真软件multisim 10.0免费下载
  12. 340992  |  191187次下载  |  免费
  13. 7十天学会AVR单片机与C语言视频教程 下载
  14. 158M  |  183279次下载  |  免费
  15. 8proe5.0野火版下载(中文版免费下载)
  16. 未知  |  138040次下载  |  免费