如何在版本5-7之间迁移PHP代码而不重写或检查所有代码

如何在版本5-7之间迁移PHP代码而不重写或检查所有代码,php,php-7,Php,Php 7,当PHP7完全发布时,我正在研究从PHP5到PHP7的更新代码库(主要是由于速度的提高和??运营商能够真正帮助我们的站点) 由于存在不推荐使用的函数,以及版本之间的一些更改,我正在考虑在包含php文件之前在php文件上使用filemtime,以查看是否应该包含将修改php7行为的函数,从而在这些文件上更像php5。虽然这将在现有的服务器上工作,但我知道各种复制方法(一些在管道中很难控制)可能会在复制文件时更改修改日期 是否有一种方法可以确定文件使用哪个php版本编写或与哪个php版本兼容,并对其

当PHP7完全发布时,我正在研究从PHP5到PHP7的更新代码库(主要是由于速度的提高和??运营商能够真正帮助我们的站点)

由于存在不推荐使用的函数,以及版本之间的一些更改,我正在考虑在包含php文件之前在php文件上使用filemtime,以查看是否应该包含将修改php7行为的函数,从而在这些文件上更像php5。虽然这将在现有的服务器上工作,但我知道各种复制方法(一些在管道中很难控制)可能会在复制文件时更改修改日期


是否有一种方法可以确定文件使用哪个php版本编写或与哪个php版本兼容,并对其进行适当的解释,或者这是我的最佳选择?

我看到的解决方案是在这里寻找解决方案时受到启发的:

简言之

  • 创建两个不同的本地主机服务器
  • 将每个localhost设置为链接到不同版本的php
  • 然后编写从旧代码中提取的代码,就像从其他服务器提取一样
  • 在初始迁移之后,稳定地将文件从旧版本迁移到新版本的php
  • 因此,不必迁移整个代码库,它可以一次迁移一个块,而不必一次完成全部或什么都不做。它还应该比filemtime解决方案更持久。缺点是,它使得很难立即将旧代码集成到新代码中


    仍然对更好的解决方案感兴趣,但至少它是一个解决方案。

    仍然在寻找黑客解决方案。。。但我意识到,如果不只是检查文件是否在我推送更新的静态日期之前被修改,我至少可以通过使用可变日期稍微减轻它。。。特别是版本检查器所在文件的日期,并确保在推送前成功推送最后一个php5更新,然后自行推送,然后在推送后推送php7更新。如果一次将所有源代码全部复制到一个新位置,这仍然不一定有帮助,但它确实有助于缓解一些问题。不过我还是希望有更好的解决方案。我看到我的问题因为过于基于观点而被搁置。我已经把我的问题改成希望不是这样。有进一步的建议吗?补充说明:自从研究这个问题以来,我已经将几个代码库从5迁移到了7。其中,我只有一个在迁移过程中遇到了困难,这是通过大规模搜索&替换短标签和其他一些东西实现的。从5迁移到7并不完美,如果出现问题会很费时,但对于完整版本的跳转来说,问题是非常罕见的,而且我已经能够运行多个“仅PHP5”PHP7上的解决方案,结果只有改进。如何在Ubuntu16.04中创建两个本地主机服务器?我只在使用便携式应用服务器的windows机器上玩过这个特殊的把戏。也就是说,假设可以使用wine来安装第二个web服务器,尽管在linux中可能有更优雅的方法来完成,也许可以从源代码安装到两个不同的位置?