thinkphp 3.2.3 php版本,ThinkPHP3.2.3 运行环境从PHP5.4.x/PHP5.6.x升级到PHP7.0.x

使用工具来检查项目代码对PHP7的兼容情况

使用 PHP_CodeSniffer + PHPCompatibility

PHP_CodeSniffer

PHP_CodeSniffer对PHP,JavaScript和CSS文件进行标记,并检测违反已定义的一组编码标准的行为。

https://github.com/squizlabs/PHP_CodeSniffer

PHPCompatibility

PHP兼容性检查

https://github.com/PHPCompatibility/PHPCompatibility

更多PHPCompatibility相关内容,请参考 https://www.sitepoint.com/quick-intro-phpcompatibility-standard-for-phpcs-are-you-php7-ready/

安装和运行

按照官方文档进行安装

先安装PHP_CodeSniffer

再安装插件PHPCompatibility

composer global require “squizlabs/php_codesniffer=*”

phpcs –config-set installed_paths /data/wwwroot/php/PHPCompatibility

phpcs –config-set installed_paths “D:\projects\php\PHPCompatibility”

查看是否安装上

phpcs -i

#The installed coding standards are MySource, PEAR, PSR1, PSR12, PSR2, Squiz, Zend and PHPCompatibility

执行检查

phpcs –standard=PHPCompatibility –runtime-set testVersion 7.0 /data/wwwroot/project/ >phpcs.log

#执行的过程会有些慢,慢慢等吧

根据phpcs.log中的日志,解决error级别的错误

FILE: \data\wwwroot\project\Common\function.php

FOUND 3 ERRORS AFFECTING 2 LINES

9 | ERROR | Function split() is deprecated since PHP 5.3 and removed since PHP 7.0; Use preg_split() instead

11 | ERROR | Function eregi() is deprecated since PHP 5.3 and removed since PHP 7.0; Use preg_match() instead

11 | ERROR | Extension ‘ereg’ is deprecated since PHP 5.3 and removed since PHP 7.0; Use pcre instead

再加上手动按照PHP版本逐级检查不兼容

PHP5.4.x 》 PHP5.6.x

不向后兼容的变更的检查

检查 pack() 和 unpack() pass

PHP 5.5.x 中废弃的特性的检查

preg_replace() 函数中用到的 /e 修饰符现在被弃用。可以使用 preg_replace_callback() 函数来替代。

mcrypt 的相关函数

PHP 5.5.x 》 PHP5.6.x

从PHP 5.5.x 移植到 PHP 5.6.x

不向后兼容的变更的检查

严格的 json_decode()

PHP 5.6.x 》 PHP7.0.x

从PHP 5.6.x 移植到 PHP 7.0.x

不向后兼容的变更的检查

ereg相关函数

split()

测试

把主要业务功能都过一遍测试

升级部署问题

方式1:容器部署:php-fpm改用docker的方式部署,这样比较方便多版本切换和回滚

方式2:传统部署:部署新服,业务流量切过去,原有服暂时不要销毁,等业务没问题后再慢慢销毁原有服, 如果是云平台应该为所有将要销毁的系统做一个快照以备不时之需

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值