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 ...
随机推荐
- AI驱动的PlantUML:快速生成专业级UML图表
**对于程序员来说,编写验收文档中的各种UML图是最让人头疼的事情之一,相信各位读者对此深有体会.** 本文将探讨如何利用AI驱动的PlantUML来快速生成专业级别的UML图表,从而减轻这一负担. ...
- Ubuntu 设置 SMB 服务
安装 Samba 包 sudo apt install samba samba-common 创建用于 SMB 共享的文件夹 sudo mkdir /usr/local/volumes # 新建用于共 ...
- android ImageView 设定宽度铺满,高度自定义
问题:imageView 宽度铺满,高度自定义,会出现上下留白的现象(一般比例的还好) 解决: <xxx.xxx.xxx.xxx.FullWidthImageView android:id=&q ...
- Linux 终端运行命令时出现多行带有加号的信息(详见文章内容)
++_vte_ prompt_ command +++ HISTTIMEFORMAT= +++ history 1 +++ sed 's/^ *[0-9] \+ *//' ++ local ' com ...
- Go runtime 调度器精讲(四):运行 main goroutine
原创文章,欢迎转载,转载请注明出处,谢谢. 0. 前言 皇天不负有心人,终于我们到了运行 main goroutine 环节了.让我们走起来,看看一个 goroutine 到底是怎么运行的. 1. 运 ...
- ASP.NET Core Library – Google libphonenumber (Country Dial Code)
前言 Google libphonenumber 是 Java 的, ASP.NET Core 只是 port 过去而已. 以前在 angular2 学习笔记 ( translate, i18n 翻译 ...
- Angular 学习笔记 (消毒 sanitizer)
refer : https://www.intricatecloud.io/2019/10/using-angular-innerhtml-to-display-user-generated-cont ...
- Go runtime 调度器精讲(十):异步抢占
原创文章,欢迎转载,转载请注明出处,谢谢. 0. 前言 前面介绍了运行时间过长和系统调用引起的抢占,它们都属于协作式抢占.本讲会介绍基于信号的真抢占式调度. 在介绍真抢占式调度之前看下 Go 的两种抢 ...
- RabbitMQ——死信队列介绍和应用
死信和死信队列的概念 什么是死信?简单来说就是无法被消费和处理的消息.一般生产者将消息投递到broker或者queue,消费者直接从中取出消息进行消费.但有时因为某些原因导致消息不能被消费,导致消息积 ...
- 应聘软件测试 HR 会问到哪些问题?收藏这一篇就够了!
1.你还有收到其他offer吗? 其实hr问你offer情况,是对你感兴趣,想要进一步了解你,看下你的市场竞争力. 但注意不要太坦诚的说:我还没有offer或者收到两个offer还想对比对比:也不要撒 ...