3

以核心 PHP 开发的现有产品是在 PHP 5.2 中构建的,现在我们希望将产品迁移到 PHP 5.4。

CodeSniffer 可以检测版本的兼容性并生成带有警告和错误的报告。

当前的方法可能是:

  • 扫描整个产品并从 CodeSniffer 获取报告

  • 准备修复每种类型的警告或错误的计划,例如ereg_replacepreg_replace函数替换并在第一个参数中添加分隔符

  • 例子:

    Original: $new = ereg_replace(“oldstring“, “newstring“, $old);
    Replace:  $new = preg_replace(“/oldstring/“, “newstring“, $old);
    
  • 制作一个PHP脚本来实现这个计划

  • 运行脚本,再次使用 CodeSniffer 进行测试,然后再次对整个产品进行测试

有没有更好的工具或方法将 PHP 5.2 迁移到 PHP 5.4?

4

2 回答 2

1

我会收集有关这些警告错误的信息,并将它们解析为发生“失败”的文件名和字符串编号,并在手动模式下(最简单的方法)纠正所有这些问题。

即使项目太大,我认为这样的情况也不会太多,否则最好考虑重构而不是纠正兼容性问题。

于 2012-12-25T13:06:26.813 回答
1

我的项目有 PHPUnit 测试。测试还记录所有警告和通知。使用 PHP5.2,我确保没有警告或通知。然后我升级到 PHP 5.4,收到了很多警告和通知,还有很多测试失败了。然后只需将它们全部修复即可。我遇到的最常见问题:分配未初始化对象的属性。

于 2012-12-25T13:49:09.517 回答