PHP_CodeSniffer是什麼?如何安裝使用?

藏色散人
發布: 2023-04-10 21:12:01
轉載
4640 人瀏覽過

本篇文章為大家介紹PHP_CodeSniffer,以及其安裝和使用教學。有一定的參考價值,有需要的朋友可以參考一下,希望對大家有幫助。

PHP_CodeSniffer是一款自動化的PHP程式碼規格檢查工具

CodeSniffer內建MySourcePEARPHPCSPSR1PSR2SquizZend等幾套程式碼規範。

當然,你也可以新增自己的程式碼規格

PHP_CodeSniffer包含兩個工具,phpcs# 用來#檢查程式碼規格#, phpcbf用來修正程式碼規格

1 安裝

PHP_CodeSniffer 有好幾種安裝方式。

1.1 執行檔方式安裝

用git指令下載(或直接下載)倉庫原始碼,然後直接執行:

git clone https://github.com/squizlabs/PHP_CodeSniffer.git
cd PHP_CodeSniffer
php bin/phpcs -h
php bin/phpcbf -h
登入後複製

要使用非最新版本,可以到PEAR下載,網址:http://pear.php.net/package/PHP_CodeSniffer/download

例如,要用2.9.1,PEAR下載之後解壓,執行的命令是:

php scripts/phpcs -h
php scripts/phpcbf -h
登入後複製

與githuh 下載不同的是,執行檔在scripts目錄。

1.2 phar檔案安裝方式

phar也就是php archive,把php檔案打包成一個檔案供服務。

Linux系統用命令下載phar檔案:

curl -OL https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar
curl -OL https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar
登入後複製

Windows系統用瀏覽器訪問上面的兩個鏈接,下載這兩個phar檔案。

然後在phar檔案的目錄裡面執行:

php phpcs.phar -h
php phpcbf.phar -h
登入後複製

能看到phpcs和phpcbf的幫助訊息,說明安裝成功。

說明:

  • 這種方式要確保php執行檔已經加入到PATH環境,不然就得指定絕對目錄
  • #每次執行都必須把這兩個.phar檔案放到對應目錄,然後在那個目錄下運php phpcs.phar xxx行指令

#1.3 pear安裝方式

##如果本機安裝了pear(

pear安裝方法),也可以透過pear來安裝PHP_CodeSniffer,指令:

pear install PHP_CodeSniffer
登入後複製
透過pear安裝後,CodeSniffer的規格檔會安裝在:

/path/to/pear/PHP/CodeSniffer /src/Standards

1.4 composer安裝方式

composer安裝也很方便,一個指令:

composer global require "squizlabs/php_codesniffer=*"
登入後複製

說明:這裡需要composer指令已經在PATH環境變數中。

也可以在composer.json檔案中使用:

{
    "require-dev": {
        "squizlabs/php_codesniffer": "3.*"
    }
}
登入後複製
完成後執行指令:

./vendor/bin/phpcs -h
./vendor/bin/phpcbf -h
登入後複製

1.5 設定phpcs直接在指令列中執行

以上的方式中,除了pear安裝方式,其他方式要執行

phpcs指令,都需要在前面加上php。

如果是Linux提供,因為php執行檔路徑已經在環境

PATH中,所以把bin(或scripts) 的路徑加入PATH,就可以在終端機執行phpcs指令了。

但是在Windows系統中,實際上是執行

phpcs.bat文件,這個文件又引用了同目錄下的phpcs文件。

在phpcs.bat中,我們需要設定兩個變量,才能在CMD中正確執行phpcs指令。

如下,需指定

php.exephpcs檔案的絕對位置:

if "%PHPBIN%" == "" set PHPBIN=D:\php56n\php.exe
if not exist "%PHPBIN%" if "%PHP_PEAR_PHP_BIN%" neq "" goto USE_PEAR_PATH
GOTO RUN
:USE_PEAR_PATH
set PHPBIN=%PHP_PEAR_PHP_BIN%
:RUN
"%PHPBIN%" "D:\www\PHP_CodeSniffer-2.9.1\scripts\phpcs" %*
登入後複製
然後把路徑D:\www\PHP_CodeSniffer-2.9 .1\scripts\加入PATH中,就可以在CMD中執行phpcs了。

說明:phpcbf也需要這樣的修改。

2 使用

上面我們看到 PHP_CodeSniffer 有兩個指令。

預設情況下,PHP_CodeSniffer 使用PEAR規格檢查程式碼。

2.1 使用指令

以下指令用預設規格來檢查檔案和目錄。

$ phpcs /path/to/code/myfile.php                        # 检查文件
$ phpcs /path/to/code                                   # 检查目录和子目录下的所有文件
$ phpcs -l /path/to/code                                # 检查目录下的所有文件,不包括子目录
$ phpcs /path/to/code/myfile.inc /path/to/code/my_dir   # 检查文件和目录
登入後複製

2.2 檢查結果

預設情況下,檢查結果包含錯誤和警告,如下:

$ phpcs /path/to/code/myfile.php

FILE: /path/to/code/myfile.php
--------------------------------------------------------------------------------
FOUND 5 ERROR(S) AND 1 WARNING(S) AFFECTING 5 LINE(S)
--------------------------------------------------------------------------------
  2 | ERROR   | Missing file doc comment
 20 | ERROR   | PHP keywords must be lowercase; expected "false" but found
    |         | "FALSE"
 47 | ERROR   | Line not indented correctly; expected 4 spaces but found 1
 47 | WARNING | Equals sign not aligned with surrounding assignments
 51 | ERROR   | Missing function doc comment
 88 | ERROR   | Line not indented correctly; expected 9 spaces but found 6
--------------------------------------------------------------------------------
登入後複製

如果不要显示警告,加个-n参数:

$ phpcs -n /path/to/code/myfile.php
登入後複製

仅显示检查结果概要:

$ phpcs --report=summary /path/to/code
登入後複製

2.3 指定规范

可以使用 -- standard参数指定一个或多个规范来检查。

$ phpcs --standard=PEAR /path/to/code/myfile.inc                      # 使用内置规范
$ phpcs --standard=/path/to/MyStandard /path/to/code/myfile.inc       # 使用指定路径下的规范
$ phpcs --standard=PEAR,PHPCS,/path/to/MyStandard file.php            # 使用多个规范

$ phpcs --config-set default_standard Squiz                           # 修改默认规范为Squiz(原本是PEAR)
登入後複製

查看现有规范:

$ phpcs -i
登入後複製

2.4 查看帮助

$ phpcs -h
登入後複製

推荐学习:《PHP视频教程

以上是PHP_CodeSniffer是什麼?如何安裝使用?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:awaimai.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板