来到需要检测代码的目录下 需要提前安装 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 版本升级后需要对代码进行兼容性检测的更多相关文章

  1. Atitit.提升 升级类库框架后的api代码兼容性设计指南

    Atitit.提升 升级类库框架后的api代码兼容性设计指南 1. 增加api直接增加,版本号在注释上面增加1 2. 废弃api,使用主见@dep1 3. 修改api,1 4. 修改依赖import, ...

  2. Java中String的intern方法,javap&cfr.jar反编译,javap反编译后二进制指令代码详解,Java8常量池的位置

    一个例子 public class TestString{ public static void main(String[] args){ String a = "a"; Stri ...

  3. 普通的jdbc事务在插入数据后 下面的代码报错时 数据不会回滚 但是 spring的事务会回滚

    普通的jdbc事务在插入数据后 下面的代码报错时 数据不会回滚 但是 spring的事务会回滚

  4. 关于 Unity 版本升级后可能会引起偶发光照图错乱的问题

    近期项目遇到一个奇怪的问题,使用 Unity 2017 版本升级后,团队中某些人的机器光照图总是不正确,而有的人是正确的,一直不知道为什么. 为了查到这个奇怪问题的原因,首先查看了美术的在 Max 中 ...

  5. 一招破解混淆后的JavaScript代码

    http://www.cnblogs.com/zjyuan/archive/2011/12/14/2287647.html JavaScript不是很给力,想怎么破解就怎么破解!此文章教你的不仅仅是破 ...

  6. myeclipse安装插件phpeclipse后进行PHP代码编写

    平常一般写java代码,有时也捣腾一下php,原来安装过zend studio来编写php代码,无奈电脑越来越卡,于是卸载了zend,然后在myeclipse中安装phpeclipse这款插件来完成p ...

  7. git 分回滚后无法合并代码问题

    git reset & git revert 区别: 1. git revert是用一次新的commit来回滚之前的commit,git reset是直接删除指定的commit. 2. 在回滚 ...

  8. node版本升级后,原有项目打不开

    node版本升级后,原有项目出现以下问题 gulp[8272]: src\node_contextify.cc:628: Assertion `args[1]->IsString()' fail ...

  9. jquery动画函数里面可以跟一个回调函数,表示动画结束后执行的代码

    jquery动画函数里面可以跟一个回调函数,表示动画结束后执行的代码 使用js监听动画结束后进行的操作: $ele.fadeIn(300,function(){...}) $ele.fadeOut(3 ...

  10. 30行Python代码实现人脸检测

    参考OpenCV自带的例子,30行Python代码实现人脸检测,不得不说,Python这个语言的优势太明显了,几乎把所有复杂的细节都屏蔽了,虽然效率较差,不过在调用OpenCV的模块时,因为模块都是C ...

随机推荐

  1. LuCI Themes

    Bootstrap Bootstrap Light Bootstrap Light 就是 Bootstrap Bootstrap Dark Material OpenWrt OpenWrt 2020

  2. Delta Lake 学习

    解决了什么问题 delta lake 是有 ACID 支持,有time travel... 对数据可以验证,不再需要 λ 架构 对事务的ACID支持,解决了spark job 可能会中间excepti ...

  3. sicp每日一题[1.43]

    Exercise 1.43 If f is a numerical function and n is a positive integer, then we can form the nth rep ...

  4. Spring Cloud集成Seata分布式事务-TCC模式

    参考文章 分布式事务实战方案汇总 https://www.cnblogs.com/yizhiamumu/p/16625677.html 分布式事务原理及解决方案案例https://www.cnblog ...

  5. python 浅拷贝与深拷贝

    赋值引用 >>> a= {1:[1,2]}>>> b = a>>> b[2]=3>>> b {1: [1, 2], 2: 3} ...

  6. Angular 18+ 高级教程 – Component 组件 の Pipe 管道

    介绍 Pipe 类似于 Template Syntax,它的用途是 transform value for display. 参考: Docs – Understanding Pipes DatePi ...

  7. Figma 学习笔记 – Text

    结构 Figma 的字都会有一个 wrapper 控制 width. 虽然它是看不见的. 但是你要知道它有那个概念存在. 按 T 键, 然后鼠标点击或拉就可以做出一个 text 了. 基本配置 我顺着 ...

  8. 【VMware VCF】使用 SFTP 服务器备份 VCF 核心组件的配置文件。

    可以定期对 VMware Cloud Foundation 环境中的相关核心组件(如 SDDC Manager.NSX Manager 以及 vCenter Server 等)创建配置备份,以防止当意 ...

  9. 25. http 常见状态码

    状态码的分类: 2xx:表明请求被成功接收并处理 : 3xx:表示要完成请求,需要进一步操作. 通常,这些状态代码用来重定向 :重定向就是 从 a 地址跳转到 b 地址 : 4xx:客户端错误,请求错 ...

  10. 工作使用:Exchange命令集(超级重要)

    工作使用:Exchange命令集(超级重要) 命令1:导出某个用户的邮件                  New-MailboxExportRequest   -mailbox  dusonglin ...