ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

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

2019-07-03 22:27:54  阅读:199  来源: 互联网

标签:php migration detect incompatibility


我希望将一个大的PHP网站从5.2升级到5.3,之后可能会超越.

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

从本质上讲,我所追求的是一种轻松识别受影响代码的方法,这些代码可能已经错过了,而无需运行所有代码或读取所有代码.是否有一个工具可以基本上扫描代码并告诉我问题区域并节省我几周/几个月的时间?

有任何想法吗?我忘了提到我们使用IIS / Windows如果这很重要.

解决方法:

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

更大的问题在于list of features that was deprecated in 5.3.这包括您在问题中提到的传递参考功能.

其中一些功能很难通过搜索代码来找到,特别是对于大型代码库,如果代码已经存在了一段时间,那么可能性很高,你至少会对它们中的一部分犯规.

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

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

显然,你需要进行相当详尽的测试,以确保你已经找到了所有东西,但这并不一定是件坏事 – 事实上坦率地说,如果你升级的话,你不管怎样都不这样做该大小系统的语言版本.也许您可以将此作为一个机会开始编写那些您尚未设法解决的测试脚本.

标签:php,migration,detect,incompatibility
来源: https://codeday.me/bug/20190703/1371080.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有