从 5.3 迁移时使用哪个 PHP 版本


Which PHP Version To Use While Migrating from 5.3?

我正在做一个php 5.3+的项目。我需要创建一个单独的API,该API将部署在我使用Symfony2的同一服务器上。

由于我需要在同一台服务器上部署新的api,我想使用php 5.5+版本现在我需要将我的旧项目升级到新版本的php和mysql,因为服务器目前在5,3+上。我在本地系统上尝试了 php 5.4+ 和 mysql 5.5+,该项目运行良好,但是当我切换到 php 5.5+ 时,它向我显示错误,指出mysql_connect已弃用。

检查了几个站点,并遇到了一个解决方案,我可以通过执行一些 ini 设置来跳过 php 5.5 + 上已弃用的消息。

现在我主要关心的是迁移到 php5.5+ 并开始新功能开发是否是正确的解决方案因为我需要使用 5.5+,这样我就不会在新 Apior 中遇到与任何其他东西相同的弃用问题,如果我迁移到 5.4+。

请回复

升级到最新的 5.x 分支。不要升级到 7。

新的主要版本意味着向后兼容性被破坏。您可以预期会删除一些已弃用的功能。通常,升级到新的市长PHP版本需要升级代码库。

升级到新的次要版本时,您可以期望应用程序继续工作。通常会添加新功能并弃用某些功能,但不会删除任何内容。

弃用是指示在即将推出的版本中可能会删除功能的通知。

这些通知旨在让作为开发人员的您了解您需要更改哪些内容才能使代码准备好升级新的主要版本。

在生产环境中,应通过 error_reporting 禁用这些通知。

弃用通知不应阻止您升级到新的次要版本。如果没有此升级,很难知道要更改哪些内容才能使您的软件保持最新状态。

结论:更新到 PHP 5.6。当您准备好并有时间时,更改/更新您的代码,这样您就不会使用已弃用的功能。完成后,您可以升级到 PHP 7。

如果我

是你,我会问自己的问题是,我想用弃用的功能维护一个代码库多长时间......我的建议是迁移到 PHP 7(或最低 5.6),升级项目并开始新功能开发......从长远来看,会得到更好的回报。

简短的回答是"现在迁移到 PHP 5.6;然后稍后转到 PHP 7,一旦您处理了(或作为处理练习的一部分)所有会破坏 PHP 7 代码的问题。

从 PHP 5.3 到 5.6 的变化并没有那么大。真正大的变化发生在 5.2 和 5.3 之间,但如果你已经在 5.3 上,那么你已经处理好了。从那里移动到 5.6 几乎是无缝的。

是的,每个

版本之间都有一些向后兼容性中断,是的,您必须在开始之前阅读每个版本的升级说明,但实际上,5.4、5.5 和 5.6 更多的是关于添加功能和提高性能,而不是破坏事物。

您特别提到了 5.5 中弃用的mysql扩展。这是真的,你会得到警告。但请注意,这些函数在 5.5 和 5.6 中仍然有效。弃用警告告诉您它们被视为过时,将来会被删除。这在 7.0 中已经发生了。这些警告基本上是为了给你公平的警告;让您有时间在下一个升级周期之前更改代码。如果您忽略警告,您的代码目前仍然可以工作,但您应该立即开始工作以解决问题。

对于

mysql 扩展,解决此问题意味着替换数据库代码,使其使用 mysqliPDO扩展。

mysqli扩展基本上是旧mysql扩展的直接替代品。有一些更改(如果你想使用它,它会添加一个 OO 接口,并且它不像旧库那样使用单个全局连接对象,所以你需要将连接对象传递到每个调用中),但通常很容易从一个转换到另一个。

PDO是一个更高级的数据库库,可以支持一系列不同的数据库类型,包括Mysql。它与旧扩展完全不同,因此转换是一个更复杂的过程。但是,如果您可以使用这个,它通常被认为是首选选项。