ryunosuke/polyfill-attribute

v2.0.0 2024-02-18 04:23 UTC

This package is auto-updated.

Last update: 2024-09-18 05:29:10 UTC


README

描述

此包提供了php8及以后版本的属性功能。

安装

{
    "require": {
        "ryunosuke/polyfill-attribute": "*"
    }
}

演示

# Below are the same results
php74 demo/main.php
php80 demo/main.php

使用方法

Provider类提供了一个返回ReflectionAttribute的方法。这在php7/8中工作方式相同。

注意

  • 性能较低
  • 如果指定了PSR16,则属性按标识符缓存
  • 抽象语法树按文件名缓存
  • 匿名类的__CLASS__有细微的差异
  • 不支持连续行属性(例如:#[Attribute] private $property
  • Attribute::$target约束是运行时错误(在php8中是编译时)

版本

@api方法版本遵循语义版本控制。

  • https://semver.org
    • 主要版本:更改规范(BC中断)
    • 次要版本:添加功能(无BC中断)
    • 修订版本:修复错误(无BC中断)

2.0.0

1.2.0

  • [功能] 支持BetterReflection属性
  • [功能] 支持BetterReflection 4/5

1.1.0

  • [功能][Provider] 添加每个实例的缓存

1.0.0

  • 发布

许可

MIT