代码之家  ›  专栏  ›  技术社区  ›  robjmills

更新到PHP 5.3,禁用不推荐的函数警告

  •  5
  • robjmills  · 技术社区  · 14 年前

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

    error_reporting(E_ALL ^ E_DEPRECATED);
    

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

    3 回复  |  直到 12 年前
        1
  •  3
  •   Alin P.    14 年前

    如果你还没有读过 migration guide Backward Incompatible Changes Removed Extensions

    你有比贬低更大的问题。忽略 E_DEPRECATED 还不够。由于不兼容的更改,还会有其他类型的错误,或者,甚至更糟的是,意外的行为。

    下面是一个简单的例子:

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

    7 在PHP 5.2.x中,但是在php5.3.x中会给出一个解析错误。

    你需要做的是把指南中的每一项都带上,检查你的代码并在需要的地方更新。为了加快速度,您可以忽略不推荐的功能 只需禁用错误报告 不赞成

    也不要忘记你的黑客,并尽快解决不赞成的问题。

    当做,

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

        2
  •  4
  •   TheGrandWazoo    14 年前

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

    但是,如果你这样做了,就把它记录在某个地方。它可以节省你几个小时之前,你还记得设置国旗。

        3
  •  1
  •   Nathan MacInnes    14 年前

    我猜你有什么测试服务器?如果没有,您真的应该设置一个并在PHP 5.3中测试您的代码。如果你的代码经过了彻底的单元测试,测试它将需要几秒钟,并且修复它也会相当快,因为单元测试会告诉你确切的位置。如果不是,那么考虑在下一个版本发布之前将单元测试作为一个优先事项,同时完成所有的工作,首先 E_DEPRECATED