• [原创]PHP代码修正之CodeSniffer


    参考链接

    使用 PHP-CS-Fixer 的可以看这篇文章: https://learnku.com/laravel/t/547/use-php-cs-fixer-to-automatically-standardize-your-php-code

    介绍

    PHP_CodeSniffer 是一个代码风格检测工具。它包含两类脚本,phpcsphpcbfGitHub地址

    phpcs 脚本对 PHPJavaScriptCSS 文件定义了一系列的代码规范(通常使用官方的代码规范标准,比如 PHPPSR2),能够检测出不符合代码规范的代码并发出警告或报错(可设置报错等级)。

    phpcbf 脚本能自动修正代码格式上不符合规范的部分。比如 PSR2 规范中对每一个 PHP 文件的结尾都需要有一行空行,那么运行这个脚本后就能自动在结尾处加上一行空行。

    php-cs-fixer

    该工具不包含在 PHP_CodeSniffer 中, 是在另一个独立的项目 https://github.com/FriendsOfPHP/PHP-CS-Fixer

    php-cs-fixer 修复不规范代码 作用等同于 phpcbf 只不过规则好像稍有区别

    安装

    composer global require "squizlabs/php_codesniffer=*"
    

    安装后会在全局的 Vendor目录下的 bin 中生成两个软链接:

    phpcbf -> ../squizlabs/php_codesniffer/bin/phpcbf
    phpcs -> ../squizlabs/php_codesniffer/bin/phpcs
    

    查看全局 Vendor 目录位置:

    composer global config bin-dir --absolute
    

    使用

    命令行模式

    1. phpcsphpcbf 的目录加入环境变量

    2. 设置默认代码标准

      为了避免每次手动指定标准, 直接设置默认的代码标准为 PSR-2

      phpcs --config-set default_standard PSR2
      phpcbf --config-set default_standard PSR2
      
    3. 检测代码文件

      phpcs test.php
      

      此时命令行会提示发现的问题列表, 带 [x] 的表示可以被 phpcbf 修正

      若需要每次执行时指定代码格式标准, 则加上 –standard=<standard>

      phpcs --standard=PSR2 test.php
      
    4. 修正代码

      phpcbf test.php
      

      此时会修正问题列表中带 [x] 的问题

    PHPStorm

    让编辑器使用PSR-2标准

    1、打开PhpStorm的设置页(File->Setting),到Editor->Code Style->PHPPHP中选择风格为 PSR1/2

    2、到Code Sniffer页,路径是Setting->Languages and Frameworks->PHP->Quality Tools->Code Sniffer,设置phpcs的路径

    Composer全局的vendor目录inphpcs.bat

    3、到Inspections页,路径Setting->Editor->Inspections,右侧的 PHP,勾选下面的两个 PHP,选择使用 PSR2

    现在使用PhpStorm的格式化,将会自动格式化成psr-2的风格

    经过上面的操作,PhpStorm代码格式化的规则基本与phpcs的规则基本一致了,但也有一小部分不一致,所以后面还要用到phpcsphpcbf

    如果每次都在终端去执行花费时间可不少,为了提高工作效率,可以在PhpStorm集成phpcbf、phpcs检测规范的功能

    设置路径:Tools -> External Tools

    集成phpcbf

    • Program是你的PHP根目录下的文件,windows是.bat文件

    • Arguments--standard=PSR2 $FileDir$/$FileName$,记得指定代码标准

    • Working directory$ProjectFileDir$,也可以直接填

    下面的Open console for tool output是指打印检测的信息到控制台上,phpcs检测的我们要看,phpcbf就不用了,所以不用勾选

    怎么使用呢?

    工具栏的Tools->External Tools就可以看到我们刚才添加的两个小工具,直接点击就可以用了

    点击操作很麻烦, 那就加一个快捷键吧:

    Settings -> Keymap -> External Tools -> phpcbf 中进行添加快捷键操作

  • 相关阅读:
    Laravel Pipeline原理及使用
    Laravel ServiceProvider注册过程及简单使用
    Laravel Facade原理及使用
    laravel kernel解析过程
    laravel Application实例化后两个方法
    laravel核心Ioc容器
    composer(三) 基本命令
    composer分析(二)结合PSR-4
    composer源码简单分析(一)
    舍得 (学习html几天)
  • 原文地址:https://www.cnblogs.com/youjiaxing/p/10826671.html
Copyright © 2020-2023  润新知