php-extended / polyfill-php80-stringable
一个扩展,将 php8.0 中新增的 Stringable 接口添加到之前的 php 版本
1.2.12
2024-03-31 13:21 UTC
Requires
- php: >=7.0
- dev-master
- 1.2.12
- 1.2.11
- 1.2.10
- 1.2.9
- 1.2.8
- 1.2.7
- 1.2.6
- 1.2.5
- 1.2.4
- 1.2.3
- 1.2.2
- 1.2.1
- 1.2.0
- 1.1.1
- 1.1.0
- 1.0.41
- 1.0.40
- 1.0.39
- 1.0.38
- 1.0.37
- 1.0.36
- 1.0.35
- 1.0.34
- 1.0.33
- 1.0.32
- 1.0.31
- 1.0.30
- 1.0.29
- 1.0.28
- 1.0.27
- 1.0.26
- 1.0.25
- 1.0.24
- 1.0.23
- 1.0.22
- 1.0.21
- 1.0.20
- 1.0.19
- 1.0.18
- 1.0.17
- 1.0.16
- 1.0.15
- 1.0.14
- 1.0.13
- 1.0.12
- 1.0.11
- 1.0.10
- 1.0.9
- 1.0.8
- 1.0.7
- 1.0.6
- 1.0.5
- 1.0.4
- 1.0.3
- 1.0.2
- 1.0.1
- 1.0.0
This package is auto-updated.
Last update: 2024-08-31 00:32:18 UTC
README
一个扩展,将 php8.0 中新增的 Stringable 接口添加到之前的 php 版本。
安装
此库的安装通过 composer 完成,并且通过其自动加载器自动加载此库的所有类。
- 从 他们的网站 下载
composer.phar
。 - 然后运行以下命令将此库作为依赖项安装:
php composer.phar install php-extended/polyfill-php80-stringable ^1
动机
rfc 将 \Stringable 接口引入 php8.0 后,有多个实现,但都没有满足我的需求。这些是:
- 严格遵循 rfc 提案的标准化实现;
- 透明替换,当将 php 版本升级到 php8 时,无需重新定义依赖于此包的包的依赖项约束;
- 向后兼容 php7.0
首先是 symfony 实现。但与 php5 的兼容性导致该实现没有严格遵循 rfc 中的描述(缺少返回类型)。
然后是 raigu 实现,但该实现允许抛出异常(这是 php7.4 和 php8 允许的行为)。我需要为较低的 php7 版本提供此接口,并且由于包版本的限制,该实现不可用。
然后是 fleshgrinder 实现。该实现不遵循 rfc,并且在它自己的命名空间中,不允许在将任何程序的 php 版本升级到 php8 版本时进行透明替换。
可能还有其他未列出的实现。
许可证
MIT(见 许可证文件)。