blitz-php / annotations
基于 `mindplay/annotations` 的注解
Requires
- php: >=7.4 | ^8.0
- mindplay/annotations: ^1.3
README
blitz-php/annotations 是一个用于 PHP 7.4+ 的注解和属性读取器。尽管它最初是为 BlitzPHP 框架创建的,但这个库设计得可以轻松集成到任何类型的 PHP 项目中。基于 mindplay/annotations,它为您的项目提供了一个简单、快速和轻量级的注解读取器。
📦 安装 & 使用基础
该项目需要 PHP 7.4+。建议的安装方法是使用 Composer。只需执行以下操作:
composer require blitz-php/annotations
假设您正在处理几个项目,并且每个项目都需要注解支持。使用这个库,我们简化了您的工作,您只需要一个注解的类和 BlitzPHP\Annotations\AnnotationReader
类来查找注解或属性。
要了解更多关于该库的使用方法,请尝试浏览 tests
目录,并了解如何将此库集成到您的项目中。
注解读取
考虑以下具有一些 docblock 注解的类:
<?php /** * @RequestMapping(["post", "get"]) * @AjaxOnly */ class FooController { /** * @required */ protected $repository; /** * @RequestMapping(["get"]) */ public function index(){} }
使用 BlitzPHP\Annotations\AnnotationReader
类读取类、属性和方法的注解。因此
use BlitzPHP\Annotations\AnnotationReader; $annotations = AnnotationReader::fromClass('FooController'); /* [ BlitzPHP\Annotations\Http\RequestMappingAnnotation::class, BlitzPHP\Annotations\Http\AjaxOnlyAnnotation::class, ] */
同样适用于类属性...
use BlitzPHP\Annotations\AnnotationReader; $annotations = AnnotationReader::fromProperty('FooController', 'repository'); /* [ BlitzPHP\Annotations\Validation\RequiredAnnotation::class, ] */
方法...
use BlitzPHP\Annotations\AnnotationReader; $annotations = AnnotationReader::fromMethod('FooController', 'index'); /* [ BlitzPHP\Annotations\Http\RequestMappingAnnotation::class, ] */
📓 文档
这个库提供了与 mindplay/annotations 兼容的现成注解。请浏览测试用例以查看 Blitz 提供的注解使用示例。
⏫ 更新
有关升级到该库最新版本的说明可以在 UPGRADE 中找到。
🏷️ 变更日志
SemVer 被严格遵循。小版本和补丁版本不应引入重大的代码更改;有关最近更改的更多信息,请参阅 CHANGELOG。
标记为 @internal
的所有类或方法都不打算在此库之外使用,并且可能随时进行破坏性更改,因此请避免使用它们。
🛠️ 维护 & 支持
当发布一个新的主要版本(例如 1.0
、2.0
等)时,先前的(例如 0.19.x
)将在此新版本发布后至少 3 个月内获得错误修复,并在发布后 6 个月内获得安全更新。
(此政策可能在未来发生变化,并且可能会根据具体情况做出例外。)
👷♀️ 贡献
要报告安全漏洞,请使用 Blitz Security。我们将协调修复并在此项目中验证可能的解决方案。
对本库的贡献是 欢迎的,特别是那些
- 在不影响我们遵守某项规范的情况下,改进用户体验或灵活性的贡献。
- 优化性能
- 解决与遵守某项规范相关的问题。
- ???.
请查阅 CONTRIBUTING 以获取更多详细信息。
🧪 测试
$ composer test
这将使 blitz-php/annotations 测试能够在 PHP 7.4 或更高版本上运行。
👥 信用与感谢
📄 许可证
blitz-php/annotations 采用 MIT 许可证。请参阅 LICENSE
以获取更多详细信息。
🏛️ 管理结构
此项目主要由 Dimitri Sitchet Tomkeu 维护。Blitz PHP Lap 团队的成员有时会参与其中一些任务。
🗺️ 谁在使用它?
您可以自由地按自己的意愿使用此包。了解人们使用 blitz-php/annotations
做的有趣事情: https://packagist.org.cn/packages/blitz-php/annotations/dependents