ion / php-trans-porter
A PHP 命令行工具和类库,用于在 PHP 5.6 / 7.0 / 7.1 / 7.2 之间转换源代码。
Requires
- php: ^5.6|^7.0|^8.0
- nikic/php-parser: ^4.17
Requires (Dev)
- phing/phing: 3.*
- phpunit/phpunit: ^10.4
Suggests
- ion/auto-loader: A small auto-loading library, compatible with Composer, that allows you to customise your auto-loading functionality.
- nikic/php-parser: Nikita Popov's PHP Parser is a fantastic tool for any project that needs to parse or generate PHP code - PHP Transporter is possible thanks to this project (thanks Nikita!)
- phing/phing: Phing helps you to automate your build system (i.e. trans-porting to multiple versions of PHP)
This package is auto-updated.
Last update: 2024-09-17 11:51:11 UTC
README
PHP Trans-Porter
PHP Trans-Porter 是一个小工具,可以将(你明白了...?)源代码从一种 PHP 版本传输到另一种版本使用。
作为一名偶尔从事自由职业的人,但我能接到的项目有限,我对客户对 PHP 版本的不同要求(从 PHP 5.6 到 PHP 7.1 及以上)感到非常沮丧,无法使用新语言功能(例如标量类型提示)及其带来的潜在性能优势。
由于有时客户无法更新他们托管的 PHP 版本(由于多种原因,但有时是有些可疑的:),我需要找到一种方法来简化我的工作流程,以便
- 减少尝试说服客户升级或更换主机的时间浪费,
- 使用最新的 PHP 语言特性,
- 并在版本之间切换时减少解释特定版本错误的时间,这些错误时不时就会出现。
特性
PHP Trans Porter 目前支持 PHP 5.6、7.x(7.0 到 7.2)的回滚功能,以及批量转换(指定输入目录和输出目录,并将所有 .php 文件递归地转换为)。
该工具尝试进行尽可能少的更改,但目标是生成无需再次修改的源代码。
当前基本版本是: PHP 8.2。
PHP 7.3 及以上版本的转换功能
- 无(暂时!)
PHP 7.2 到 PHP 7.1 的转换功能
- 从返回类型提示、参数类型提示和类型转换中删除 'object' 类型实例。
- 从类常量定义中删除作用域修饰符(私有、受保护或公共)。
PHP 7.1 到 PHP 7.0 的转换功能
- 删除 'void' 返回类型实例。
- 从参数类型提示中删除可空返回类型实例(例如 '?int'),以及从参数类型提示中删除。
PHP 7.0 到 PHP 5.6 的转换功能
- 从返回类型提示和参数类型提示中删除所有标量类型提示('bool,' 'float,' 'string' 和 'int')。
- 包含一个引用 '\Exception' 别名为 'Throwable' 的 'use' 语句。
所有转换都堆叠起来 - 因此,从 PHP 7.2 转换到 PHP 5.6,首先将其转换为 7.1,然后转换为 7.0,最后转换为 5.6。
入门指南
### 使用 Composer
确保已安装 Composer - 如果未安装,可以从中获取 此处。
首先,您需要在您的 composer.json 文件中添加 ion/php-trans-porter 作为依赖项。
要使用当前稳定版本,请将以下内容添加到其中以直接从 此处 下载
"require": {
"php": ">=8.2",
"ion/php-trans-porter": "^0.1",
}
要使用最新的(开发)版本,请添加以下内容
"require": {
"php": ">=8.2",
"ion/php-trans-porter": "dev-default",
},
"repositories": {
{
"type": "vcs",
"url": "https://github.com/ion-digital/ion-php-trans-porter"
}
}
然后,在您项目的根目录中运行以下命令
php composer.phar install
先决条件
- PHP(可在命令行中访问)
- Composer
构建于
版本管理
我们使用 SemVer 进行版本管理。有关可用版本,请参阅此存储库的 标签。
作者
许可证
本项目采用 LGPL-3.0 许可证 - 有关详细信息,请参阅 LICENSE.md 文件。