php-extended/polyfill-php80-stringable

一个扩展,将 php8.0 中新增的 Stringable 接口添加到之前的 php 版本

1.2.12 2024-03-31 13:21 UTC

README

一个扩展,将 php8.0 中新增的 Stringable 接口添加到之前的 php 版本。

coverage

安装

此库的安装通过 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(见 许可证文件)。