php 版本升级后需要对代码进行兼容性检测
来到需要检测代码的目录下 需要提前安装 docker
执行
docker run --rm -v $(pwd):/app vfac/php7compatibility 7.3 . --ignore=vendor --extensions=php,module,inc -d memory_limit=4G |tee -a php7.3.result
--ignore 需要忽略的文件夹
--extensions 可以传入需要检查的文件后缀 如果不传 检查所有
-d memory_limit 传入内存分派大小
可以查看官方文章
https://vfac.fr/projects/php7compatibility
另外这篇文章讲了如何使用 phpcs
但是我没有弄成功
找个文件夹 执行 composer require "squizlabs/php_codesniffer=*"
然后 进入文件夹下的 ./vendor/squizlabs/php_codesniffer/CodeSniffer/Standards
执行
git clone https://github.com/wimg/PHPCompatibility.git
之后
./vendor/bin/phpcs -i
看到这里面并不包含 我们需要的 PHPCompatibility
则添加一下
phpcs --config-set installed_paths ./vendor/squizlabs/php_codesniffer/CodeSniffer/Standards/PHPCompatibility/PHPCompatibility
也有人说这个路径是 ./vendor/squizlabs/php_codesniffer/CodeSniffer/Standards/
但是我试了 ./vendor/bin/phpcs -i 还是不行
The installed coding standards are PSR1, PSR2, PEAR, PHPCS, MySource, Zend, Squiz, PSR1, PSR2, PEAR, PHPCS, MySource, Zend and Squiz
其他的倒是很好用
./vendor/bin/phpcs --standard=PSR2 --runtime-set testVersion 7.1 ~/script/php/for.php
得到
----------------------------------------------------------------------
FOUND 11 ERRORS AFFECTING 5 LINES
----------------------------------------------------------------------
14 | ERROR | [x] Expected 1 space after FOR keyword; 0 found
14 | ERROR | [x] Expected 1 space after first semicolon of FOR loop;
| | 0 found
14 | ERROR | [x] Expected 1 space after second semicolon of FOR
| | loop; 0 found
14 | ERROR | [x] Expected 1 space after closing parenthesis; found 0
15 | ERROR | [x] Spaces must be used to indent lines; tabs are not
| | allowed
32 | ERROR | [x] Expected 1 space after FOR keyword; 0 found
32 | ERROR | [x] Expected 1 space after first semicolon of FOR loop;
| | 0 found
32 | ERROR | [x] Expected 1 space after second semicolon of FOR
| | loop; 0 found
32 | ERROR | [x] Expected 1 space after closing parenthesis; found 0
33 | ERROR | [x] Spaces must be used to indent lines; tabs are not
| | allowed
48 | ERROR | [x] A closing tag is not permitted at the end of a PHP
| | file
----------------------------------------------------------------------
PHPCBF CAN FIX THE 11 MARKED SNIFF VIOLATIONS AUTOMATICALLY
---------------------------------------------------------------------- Time: 39ms; Memory: 6Mb
php 版本升级后需要对代码进行兼容性检测的更多相关文章
- Atitit.提升 升级类库框架后的api代码兼容性设计指南
Atitit.提升 升级类库框架后的api代码兼容性设计指南 1. 增加api直接增加,版本号在注释上面增加1 2. 废弃api,使用主见@dep1 3. 修改api,1 4. 修改依赖import, ...
- Java中String的intern方法,javap&cfr.jar反编译,javap反编译后二进制指令代码详解,Java8常量池的位置
一个例子 public class TestString{ public static void main(String[] args){ String a = "a"; Stri ...
- 普通的jdbc事务在插入数据后 下面的代码报错时 数据不会回滚 但是 spring的事务会回滚
普通的jdbc事务在插入数据后 下面的代码报错时 数据不会回滚 但是 spring的事务会回滚
- 关于 Unity 版本升级后可能会引起偶发光照图错乱的问题
近期项目遇到一个奇怪的问题,使用 Unity 2017 版本升级后,团队中某些人的机器光照图总是不正确,而有的人是正确的,一直不知道为什么. 为了查到这个奇怪问题的原因,首先查看了美术的在 Max 中 ...
- 一招破解混淆后的JavaScript代码
http://www.cnblogs.com/zjyuan/archive/2011/12/14/2287647.html JavaScript不是很给力,想怎么破解就怎么破解!此文章教你的不仅仅是破 ...
- myeclipse安装插件phpeclipse后进行PHP代码编写
平常一般写java代码,有时也捣腾一下php,原来安装过zend studio来编写php代码,无奈电脑越来越卡,于是卸载了zend,然后在myeclipse中安装phpeclipse这款插件来完成p ...
- git 分回滚后无法合并代码问题
git reset & git revert 区别: 1. git revert是用一次新的commit来回滚之前的commit,git reset是直接删除指定的commit. 2. 在回滚 ...
- node版本升级后,原有项目打不开
node版本升级后,原有项目出现以下问题 gulp[8272]: src\node_contextify.cc:628: Assertion `args[1]->IsString()' fail ...
- jquery动画函数里面可以跟一个回调函数,表示动画结束后执行的代码
jquery动画函数里面可以跟一个回调函数,表示动画结束后执行的代码 使用js监听动画结束后进行的操作: $ele.fadeIn(300,function(){...}) $ele.fadeOut(3 ...
- 30行Python代码实现人脸检测
参考OpenCV自带的例子,30行Python代码实现人脸检测,不得不说,Python这个语言的优势太明显了,几乎把所有复杂的细节都屏蔽了,虽然效率较差,不过在调用OpenCV的模块时,因为模块都是C ...
随机推荐
- 使用 Nuxt 的 showError 显示全屏错误页面
title: 使用 Nuxt 的 showError 显示全屏错误页面 date: 2024/8/26 updated: 2024/8/26 author: cmdragon excerpt: 摘要: ...
- 【Python自动化】之运用Git+jenkins集成来运行展示pytest+allure测试报告
目录: 一.安装allure 二.生成allure报告 三.结合jenkins来集成pytest+allure 四.结合Git集成Jenkins+Pytest+Allure测试报告 五.附录 一.安装 ...
- 【Mac】之安装VM虚拟机并安装centos7系统
参考文章:<Mac 安装VMware Fusion虚拟机> 一.安装VMware Fusion 首先下载Mac版VMware虚拟机: 链接:https://pan.baidu.com/s/ ...
- 【YashanDB数据库】YAS-02079 archive log mode must be enabled when database is in replication mode
[标题]错误码处理 [问题分类]调整归档 [关键字]关闭归档.YAS-02079.replication mode [问题描述]执行alter database noarchivelog 关闭归档时, ...
- Coursera self-driving2, State Estimation and Localization Week4, LIDAR
operating principles 工作原理 Velodyne 加州,Hokuyo 日本,SICK 德国 TOF 就是用发出去收到的时间差和光速算距离 basic LIDAR models (2 ...
- Unocss使用
目录: 安装 简单使用 自定义规则 安装 { "dependencies": { "unocss": "^0.55.6", "vu ...
- 【赵渝强老师】大数据工作流引擎Oozie
一.什么是工作流? 工作流(WorkFlow)就是工作流程的计算模型,即将工作流程中的工作如何前后组织在一起的逻辑和规则在计算机中以恰当的模型进行表示并对其实施计算.工作流要解决的主要问题是:为实现某 ...
- Python | os.path.join() method
Python中的os.path.join()方法可以连接一个或多个路径组件. 此方法将各个路径组成部分,与每个非空部分路径组成部分恰好用一个目录分隔符(" /")连接起来. 如果要 ...
- js中有哪些定时器 , 它们的用法和区别?
js有setInterval() 间隔函数 和 setTimeout()延迟函数 2 种定时器 1. setInterval间隔函数 setInterval() 方法可按照指定的周期(以毫秒计)来调用 ...
- 关于 vue3 中的 fragment 组件
vue3 中的模板中只能返回一个元素 ,否则报错,使用 fragment 组件可以返回多个元素标签