ion/php-trans-porter

A PHP 命令行工具和类库,用于在 PHP 5.6 / 7.0 / 7.1 / 7.2 之间转换源代码。

v0.1.3+main 2023-10-17 09:54 UTC

This package is auto-updated.

Last update: 2024-09-17 11:51:11 UTC


README

PHP Trans-Porter

License: LGPL v3

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 文件。