sarciszewski / php-future
将新功能(5.6+)填充到旧版本(5.4+)的PHP中
v0.6.0
2024-04-21 01:22 UTC
Requires
- ircmaxell/password_compat: ^1.0
- paragonie/random_compat: ^1|^2|^9
- paragonie/sodium_compat: ^1|^2
Requires (Dev)
- phpunit/phpunit: 4.5.*
This package is not auto-updated.
Last update: 2024-09-22 03:34:11 UTC
README
此库将一些新功能反向移植到旧版本的PHP中。
此MIT授权的项目是为了PHP开发者的利益而创建和维护的。
关于应用程序安全的警告
只有在无法根据您的业务规则升级PHP的特定情况下才应使用此功能。为了最佳的应用程序安全,您应该始终在可能的情况下运行最新版本的PHP。这旨在为无法升级的用户提供临时解决方案,并在向最新版本升级的同时使用。
注意PHP 5.2 / 5.3用户
一般来说,我们不提供对任何不受支持的PHP版本的支持。这意味着从现在起5.4.x版本。
如果您的操作系统支持已停止服务的5.3.x版本(例如,Ubuntu 12.04上的PHP 5.3.10有安全修复),我们将做出例外。 此库的目的不是鼓励自满和不安全。修补您的系统。
我们任何地方都不支持PHP 5.2.x。请升级到更新版本的PHP。
此库填充的功能
- PHP 5.4
- N/A
- PHP 5.5
array_column()
boolval()
hash_pbkdf2()
openssl_pbkdf2()
- PHP 5.6
hash_equals()
- PHP 7.0
- N/A
有关我们将要提供的功能的详细信息,请参阅wishlist.txt。 要添加到此列表,请发送拉取请求、一条推文或一封电子邮件,我们将考虑将其包含在内。
范围之外
- 密码API - 直接访问https://github.com/ircmaxell/password_compat以获取这些实现
password_hash()
password_verify()
- PHP 7 CSPRNG - 直接访问https://github.com/paragonie/random_compat以获取这些实现
random_bytes()
random_int()
为什么?
当我们的顾问向开源项目提交安全增强功能时,维护者有时会抱怨某些功能仅存在于较新版本的PHP中,因此他们无法强制要求这些功能。我们编写此代码是为了在所有版本的PHP之间提供兼容性,以防止这些问题发生。
将来,我们将尝试将一些PHP 7功能反向移植到5.5和5.6版本中,如果可能的话。
它是如何工作的
仅存在于未来版本中的功能在全局命名空间中公开。这些函数从src
文件夹调用适当的类/方法。这确保PHP仅在需要时加载代码。
如何使用此库
Composer
composer require sarciszewski/php-future
任何脚本
只需将我们的autoload.php
脚本包含在src
目录外部即可。例如
require_once "vendor/sarciszewski/php-future/autoload.php";