平平博客平平博客
user side
平平
pingping@pingping6.com
平平网络pingping6.com

php注解类库驱动

网站源码2020-06-19 28  0 
摘要:php注解类库驱动...

编写起因

    最近在学spring的时候觉得java的注解非常好用,但是php没有对注解的支持,于是我用注释加反射模拟了注解,这只是一个基础类,您可以在此基础上开发更好的作品!

版权声明

   本类库为本人原创,希望转载或者复制标明出处

代码文档

方法及说明

+----------------------------------------------------------------------+
        作者:平平                                                             
+----------------------------------------------------------------------+
        类名:annotation                                                             
+----------------------------------------------------------------------+
        功能:php注解类库驱动                                         
+----------------------------------------------------------------------+
        网站:http://blog.pingping6.com                                      
+----------------------------------------------------------------------+
        邮箱:pingping@pingping6.com                                         
+----------------------------------------------------------------------+
        文档地址:https://api.pingping6.com/api/annotation/doc.api                          
+----------------------------------------------------------------------+  
        备注:转载请标明作者,如有BUG请发邮箱指正                          
+----------------------------------------------------------------------+  
        版权声明:                                               
        本类库为本人原创,希望转载或者复制标明出处,                       
        如有BUG请联系我指正。
        注解格式
        注解内容用包裹注解名以@开头,可省略key值,分隔符为空格,value值以单双引号隔开
        类库不断更新,请支持正版!                                           
+----------------------------------------------------------------------+

public function __construct($type = null, $name = null, $name2 = null)
//构造函数,$type为class(类及其方法),func(函数),prop(类属性),用于初始化注解驱动
//$name为所需扫描的名字(如:类名,函数名)
//$name2仅在prop时有效,在prop时$name为属性所属类名,$name2为属性名

public function function($string)
//初始化function注解扫描
//$string为函数名,返回当前当前对象

public function class($string)
//初始化class注解扫描
//$string为类名,返回当前当前对象

public function property($class, $name)
//初始化property注解扫描
//$class为属性所属类名,$name为属性名,返回当前当前对象

public function getPropertyAnnotation($pre = null)
//获取属性注解,$pre为所需注解名,为空返回全部
//返回注解索引数组

public function getFunctionAnnotation($pre = null)
//获取函数注解,$pre为所需注解名,为空返回全部
//返回注解索引数组

public function getAllFunctionAnnotationInFile($filePath, $pre = null)
//获取文件中所有函数及其注解,无需初始化
//$filePath为文件路径,$pre为所需注解名,为空返回全部
//返回注解索引数组

public function getFileAnnotation($filePath, $pre = null)
//获取文件注解,注解须在开头,无需初始化
//$filePath为文件路径,$pre为所需注解名,为空返回全部
//返回注解索引数组

public function getClassAnnotation($pre = null)
//获取类注解,$pre为所需注解名,为空返回全部
//返回注解索引数组

public function getMethodAnnotation($method, $pre = null)
//获取方法注解,$pre为所需注解名,为空返回全部
//返回注解索引数组

public function getAllMethodAnnotation($pre = null)
//获取类中所有方法注解,$pre为所需注解名,为空返回全部
//返回注解索引数组

public static function getAnnotation($doc, $pre = null)
//静态方法,处理注释,返回注解
//$doc为注释内容,$pre为所需注解名,为空返回全部
//返回注解索引数组

public function haveAnnotation($doc, $pre)
//是否存在某个注解
//$doc为注释内容,$pre为所需注解名
//返回布尔值

public static function getSubstr($str, $leftStr, $rightStr, $all = 0)
//静态方法,截取字符串
//$str为目标字符串
//leftStr为开始字符串, $rightStr为结束字符串(截取第一个)
//$all为0只返回截取后的字符串,为1返回带边界的字符串
//返回截取后的字符串

例子

include('router.class.php');
(new annotation('class','router'))->getClassAnnotation('router');
(new annotation())->getAllFunctionAnnotationInFile('function.php');

文档地址

详细文档地址:http://api.pingping6.com/api/annotation/doc.api

下载地址

隐藏内容
php注解类库驱动
请 回复 后查看内容!
继续阅读
标签:免费源码类库注解驱动annotation注释模拟反射
写代码真的很累!麻烦点个赞,评论一下,然后分享给自己的小伙伴!
打赏
海报分享
发表评论
表情
快捷
私密

右滑验证