blitz-php/annotations

基于 `mindplay/annotations` 的注解

1.0.0 2022-09-21 12:09 UTC

This package is auto-updated.

Last update: 2024-08-30 01:39:38 UTC


README

Latest Version Software License Quality Score Build Status Code Intelligence Status PHPStan level Total Downloads

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.02.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