• 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
  • 相关阅读:
    数据库之完整性约束
    数据库之数据类型
    数据库之表操作,数据操作
    mysql数据库之基本操作和存储引擎
    MySQL数据库之安装
    并发编程之socketserver模块
    python并发编程之IO模型
    [BZOJ 3207] 花神的嘲讽计划Ⅰ【Hash + 可持久化线段树】
    [BZOJ 1046] [HAOI2007] 上升序列 【DP】
    [BZOJ 1816] [Cqoi2010] 扑克牌 【二分答案】
  • 原文地址:https://www.cnblogs.com/lizhaoyao/p/13361437.html
Copyright © 2020-2023  润新知