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
复制代码
posted @   李照耀  阅读(1057)  评论(0编辑  收藏  举报
编辑推荐:
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
阅读排行:
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
点击右上角即可分享
微信分享提示