bugadani / annotiny
一个用PHP编写的简单注释库。
Requires
- php: >=5.5
This package is not auto-updated.
Last update: 2024-09-14 17:11:14 UTC
README
Annotiny
Annotiny是一个小型库,旨在读取和解析文档注释。
使用方法
要创建AnnotationReader对象,必须提供合适的解析器。
$parser = new \Annotiny\AnnotationParser(new \Annotiny\AnnotationContainer);
$annotationReader = new \Annotiny\AnnotationReader($parser, $factory);
注释有四个公开方法:readClass($class)
、readFunction($function)
、readMethod($class, $method)
和readProperty($class, $property)
。这些函数按照预期工作,例如readMethod
读取并解析类或对象的文档注释。
注释对象
read*
方法的结果数据结构是一个Comment实例。注释包含文档注释的描述和解析的标签。
注释提供了一些有用的方法来处理注释标签。
has($tag)
检查标签是否存在get($tag)
检索标签值equals($tag, $value)
检查$tag
的值是否等于$value
contains($tag, $value)
检查$value
是否存在于注释的参数列表中containsAll($tag, $value_array)
检查$value_array
中的每个成员是否存在getDescription()
返回注释的描述部分
如果未找到标签,将抛出OutOfBoundsException
异常。
注释语法
文档注释直接位于要注释的类、函数、方法或属性之上(例如,它们之间没有空白行)。注释从/**
开始,并以*/
结束。每行可以可选地以星号(*)开始。
注释从描述部分开始,该部分以@tag
结束。
示例
/** This is a one-liner */
/**
* Multiple lines
*
* @annotation
*/
注释语法
注释标签以at符号(@)开头,并且它们从新的一行开始。标签名可以由字母、数字、破折号(-)和下划线(_)组成,但必须至少以一个字母开头。以下是不合法的标签名示例:@1tag
、@-tag
。
存在三种类型的注释
- 没有值的简单注释(
@tag
) - 后面跟有值的注释(
@tag that has a value
)。 - 后面跟有参数列表的注释(
@tag(value, 'other value')
)。
值由逗号分隔的字符串组成。在第二种情况下只允许一个值,逗号及其后的文本将被丢弃。第三种情况允许多个值,这些值由逗号分隔。要允许值中的逗号和换行符,只需将其用单引号(')或双引号(")括起来。
如果有多个同名的注释存在,它们的值将汇总到一个数组中。在这种情况下,没有值的注释将被忽略。
注意:在参数列表语法中支持命名参数。在这种情况下,一个=
符号将名称和值分开。
示例
@tag
@tag value
@tag "some value"
@tag()
@tag(simple value)
@tag(multiple, values)
@tag(name='value')