bugadani/annotiny

一个用PHP编写的简单注释库。

dev-master 2016-05-05 08:30 UTC

This package is not auto-updated.

Last update: 2024-09-14 17:11:14 UTC


README

Build Status

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')