Migration 更新到PHP5.3,禁用不推荐的函数警告

Migration 更新到PHP5.3,禁用不推荐的函数警告,migration,deprecated,php,Migration,Deprecated,Php,我非常渴望将我们的一些服务器更新为PHP5.3。这将为Zend Framework 2以及明显的性能更新做好准备。不幸的是,我在这些服务器上有大量的遗留代码,这些代码将及时得到修复,但不能在迁移之前全部修复。我正在考虑更新但禁用除少数几个开发站点之外的所有开发站点上的弃用函数错误,在这些站点上,我可以开始更新旧代码 error_reporting(E_ALL ^ E_DEPRECATED); 这是个坏主意,有什么根本原因吗?好吧,您可能会忘记设置了标志,并想知道为什么您的应用程序在下一次PHP

我非常渴望将我们的一些服务器更新为PHP5.3。这将为Zend Framework 2以及明显的性能更新做好准备。不幸的是,我在这些服务器上有大量的遗留代码,这些代码将及时得到修复,但不能在迁移之前全部修复。我正在考虑更新但禁用除少数几个开发站点之外的所有开发站点上的弃用函数错误,在这些站点上,我可以开始更新旧代码

error_reporting(E_ALL ^ E_DEPRECATED);

这是个坏主意,有什么根本原因吗?

好吧,您可能会忘记设置了标志,并想知道为什么您的应用程序在下一次PHP更新中会中断。在没有正确的错误报告的情况下调试应用程序可能会非常令人沮丧。这是我能想到的一个原因


但是,如果您这样做了,请将其记录在某个地方。它可以为您节省几个小时的时间,然后您才能记住设置标志。

如果您还没有设置标志,那么您应该特别关注和阅读

你有比反对更大的问题。忽略已弃用的E_
是不够的。由于不兼容的更改,还将出现其他类型的错误,或者更糟糕的是,出现意外行为

下面是一个简单的例子:

<?php
function goto($line){
    echo $line;
}
goto(7);
?>

这段代码工作正常,在PHP5.2.x中输出
7
,但在PHP5.3.x中会出现解析错误

您需要做的是查看指南中的每一项,检查您的代码,并在需要时进行更新。为了加快速度,您可以在第一阶段忽略已弃用的功能,只需禁用
E_deprecated
的错误报告,但您不能假设在移植到另一个主要PHP分支时只会收到一些无害的警告

另外,不要忘记你的黑客行为,并尽快修复不推荐的问题

问候,
阿林


注意:我试图从实际的角度回答这个问题,所以请不要告诉我忽略警告是不好的。我知道,但我也知道时间不是一种无限的资源。

我想你有某种测试服务器吧?如果没有,您真的应该设置一个,并在PHP5.3中测试您的代码。如果您的代码经过彻底的单元测试,那么测试它将需要几秒钟的时间,而且修复它也将相当快,因为单元测试将准确地告诉您应该在哪里查找。如果没有,那么考虑在下一个版本之前把单元测试放在第一位,在这段时间里,首先要用<代码> EyDeRebug < /Cord>禁用警告并修复出现的任何东西,然后在有时间后重新启用。您还可以运行全局查找和替换以更容易地修复错误。

一旦从PHP中删除这些不推荐使用的功能,使用它们的代码将开始产生E_警告或致命错误,因此很难忽略;)很好,我不知道:)。谢谢分享。