donquixote/annotation-parser

v1.0.0-alpha3 2017-08-29 00:04 UTC

This package is auto-updated.

Last update: 2024-09-24 13:58:48 UTC


README

Build Status

Donquixote的注解解析器

其他注解解析器的替代品。特别是doctrine/annotations

使用方法

查看AnnotationReaderTest获取灵感。

较为复杂的部分是创建AnnotationReader,更具体地是AnnotationResolver,它依赖于更小的组件,并根据所需的行性行为来构建。

与doctrine/annotations的区别

主要区别在于,在这个库中,注解解析分为两个步骤

  1. 将文档注释解析为抽象语法树(AST)。
  2. 将此AST解析为注解对象或其他类型的结构。

这种分离允许移除一些关于注解如何工作的假设,并使它们成为可选的。

例如,在Doctrine中,注解标签名称指的是类名或类别名,解析注解意味着实例化此类。在这里,这种行为只是众多可能性之一。

在Doctrine中,注解类的实例化方式取决于注解类的元数据。在这里,这种行为可以作为InstantiatorFinder实现,但并未内置于主要架构中。

有趣的是,Doctrine目前正在计划一个2.x分支,请参阅doctrine/annotations#75。在doctrine/annotations#139也有一个有趣的问题。

稳定性

对于1.0分支,我可能仍然会进行一些重命名,这可能会破坏用户代码。所以请将其视为预览质量!

然而,任何依赖此库的由我维护的其他项目都将没问题。

0.0分支在BC(向后兼容)破坏方面相当稳定。

用例

目前,我创建这个是为了在我的项目中使用,比如https://drupal.org/project/cfr。当我开始这个项目时,doctrine/annotations并不像是一个合适的选择。

如果其他人觉得它有用,请告诉我!