ryunosuke / polyfill-attribute
模拟php8的属性
v2.0.0
2024-02-18 04:23 UTC
Requires
- php: >=7.4
- nikic/php-parser: *
- psr/simple-cache: *
- roave/better-reflection: 4.*|5.*
Requires (Dev)
- phpunit/phpunit: 8.*
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
- [功能] 删除实用工具获取器
- 使用ryunosuke/utility-attribute (https://github.com/arima-ryunosuke/php-utility-attribute)
- [功能] 已弃用无缓存设置
1.2.0
- [功能] 支持BetterReflection属性
- [功能] 支持BetterReflection 4/5
1.1.0
- [功能][Provider] 添加每个实例的缓存
1.0.0
- 发布
许可
MIT