天天看點

Coding Standards (Drupal代碼檢測)

本文内容主要是Drupal開發中代碼檢測,簡單羅列了Coder和PHPCS的安裝和使用的步驟。如需詳情請參看Drupal官方文檔。

本文參考文檔:

Coder https://www.drupal.org/project/coder/

Installing Coder Sniffer https://www.drupal.org/node/1419988

Command Line Usage https://www.drupal.org/node/1587138

Coder可以檢查你的Drupal代碼,與編碼标準(coding standards)和其他最佳寫法對比。它可以從php_codesniffer使用phpcbf指令,修複違反編碼标準的代碼。這試用于所有版本的Drupal,是以你也可以使用Coder8.x-2.x去檢查Drupal7的代碼。

Coder不是一個子產品,它是用來作為指令行工具和內建到開發IDE中使用的。

phpcs --standard=Drupal example.module

FILE: /home/klausi/workspace/coder/example.module

--------------------------------------------------------------------------------

FOUND 5 ERRORS AFFECTING 5 LINES

  1 | ERROR | [ ] Missing file doc comment

  3 | ERROR | [ ] Missing function doc comment

  4 | ERROR | [ ] Opening brace should be on the same line as the declaration

  5 | ERROR | [x] Line indented incorrectly; expected 2 spaces, found 1

  6 | ERROR | [x] Line indented incorrectly; expected 2 spaces, found 3

PHPCBF CAN FIX THE 2 MARKED SNIFF VIOLATIONS AUTOMATICALLY

PHP_CodeSniffer是一個用于标記PHP,JavaScript和CSS檔案并監測違反編碼标準定義的編碼标準集庫。(After you install coder Sniffer ,see command line options for running it here)

Coder 包含PHP CodeSniffer的“嗅探器”。這些“嗅探器”告訴PHP CodeSniffer代碼是否符合Drupal編碼标準。具體說,有兩個規則集,Drupal 和 DrupalPractice.前者旨在強制通用标準,而後者針對希望避免常見錯誤的子產品開發人員。

1. Install PHP CoderSniffer

2. Install Coder

3. Register Drupal standards in PHP Codersniffer

4. Run the sniffs

你可以通過Composer安裝Coder Sniffer,着将自動安裝PHPCS及其依賴項。

這裡我們采用Composer安裝。

建議将編碼器安裝在一個中心的位置,因為我們無需為每個Drupal站點下載下傳安裝。

1. 确認是否安裝Composer:

$ which composer

/usr/local/bin/composer

$ composer -V

Composer version 1.5.6 2017-12-18 12:09:18

composer's installation instructions

1. Install Coder(8.x-2.x)in your global Composer directory in your home directory

$ composer global require drupal/coder

在大多數系統上,Coder将安裝在~/ .composer/vendor/drupal/coder 目錄中

2. You can check the installed location by doing:

$ composer global show -P

// ...

drupal/coder                                   /home/notroot/.composer/vendor/drupal/coder

3. 設定$PATH變量

To make the phpcs and phpcbf commands avaliable globally, add those to your $PATH variable in ~/.profile,~/.bash_profile,~/.bashrc or ~/.zshrc.

export PATH="$PATH:$HOME/.composer/vendor/bin"

PHPCS 附帶一些已經注冊的标準。上面暗轉了Coder Sniffer,我們需要注冊Drupal和DrupalPractice标準,以便PHPCS可以使用它們。我們使用Composer安裝。

Composer Installer Plugin

$ composer global require drupal/coder:^8.2.12

$ composer global require dealerdirect/phpcodesniffer-composer-installer

上面的安裝指令會傳回

PHP CodeSniffer Config installed_paths set to ~/.composer/vendor/drupal/coder/coder_sniffer

$ phpcs -i

The installed coding standards are Zend, PEAR, PSR2, MySource, PHPCS, Squiz, PSR1, DrupalPractice and Drupal

上面指令最好将結果導出到一個文檔中,友善我們翻看(如果你自信你的編碼,可以不用):

還有其他PHPCS指令的使用方式以及設定别名友善使用的方法,請檢視Drupal官方文檔。