gpt4 book ai didi

php - 从 PHP 5.2 升级到 PHP 5.3 - 向后不兼容的更改 - 如何轻松检测?

转载 作者:可可西里 更新时间:2023-10-31 23:32:21 25 4
gpt4 key购买 nike

我希望将大型 PHP 网站从 5.2 升级到 5.3,之后可能会更高。

我正在处理的继承代码库非常大,有 800,000 多行代码,大部分情况下查看向后不兼容的更改列表 (http://php.net/manual/en/migration53.incompatible.php) 大多数这些问题都可以使用字符串搜索轻松搜索代码但其他代码(例如通过引用和 API 更改代码)更难搜索。我已经使用 codesniffer 尝试识别代码的损坏区域,但 codesniffer 似乎并没有找到所有内容(例如未找到通过引用和 API 问题)。

本质上,我所追求的是一种轻松识别代码嗅探器可能遗漏的受影响代码的方法,而无需运行所有代码或阅读所有代码。有没有一种工具可以从本质上扫描代码并告诉我问题区域并为我节省数周/数月的时间?

有什么想法吗?我忘了说,如果这很重要,我们会使用 IIS/Windows。

最佳答案

大多数明确向后不兼容的问题(如您链接的页面上所列)都相当容易找到,通过寻找该页面上提到的特定功能。这是一个相对较短的列表,并且更改都非常具体。浏览它们并不难,即使在大型代码库中也是如此,而且列出的大多数更改都是边缘情况,因此希望您不必为该列表担心太多。

更大的问题是 list of features that was deprecated in 5.3 .这包括您在问题中提到的按引用传递功能。

仅通过搜索代码很难找到其中一些功能,尤其是对于大型代码库,如果代码已经存在了一段时间,那么您至少会遇到一些问题的可能性非常高

好消息是您可以在 5.3 中安全地运行您的代码,而无需触及已弃用的功能。这些功能已弃用;这意味着它们已被标记为不良,但它们实际上尚未从语言中删除(其中大多数在 5.4 中),因此关于这些功能,您的软件仍将像以前一样运行, 除了它会抛出警告信息。

因此,要在您的代码中找到所有这些内容,最好的方法就是升级到 5.3,运行您的代码,并捕获错误日志中出现的所有警告。

显然,您需要运行相当详尽的测试以确保找到所有内容,但这不一定是坏事 - 事实上,坦率地说,如果您不这样做,您就是傻瓜'为那个规模的系统升级语言版本。或许您可以以此为契机开始编写那些您还没有设法完成的测试脚本。

关于php - 从 PHP 5.2 升级到 PHP 5.3 - 向后不兼容的更改 - 如何轻松检测?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15248070/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com