摘要:php注解类库驱动...
编写起因
最近在学spring的时候觉得java的注解非常好用,但是php没有对注解的支持,于是我用注释加反射模拟了注解,这只是一个基础类,您可以在此基础上开发更好的作品!
版权声明
本类库为本人原创,希望转载或者复制标明出处!代码文档
方法及说明
+----------------------------------------------------------------------+
作者:平平
+----------------------------------------------------------------------+
类名:annotation
+----------------------------------------------------------------------+
功能:php注解类库驱动
+----------------------------------------------------------------------+
网站:http://blog.setbug.com
+----------------------------------------------------------------------+
邮箱:pingping@setbug.com
+----------------------------------------------------------------------+
文档地址:https://api.setbug.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.setbug.com/api/annotation/doc.api下载地址