为Drupal开发配置pareview.sh做code review

为Drupal开发配置pareview.sh做code review

BALA
01/12/2016
为Drupal开发配置pareview.sh做code review
无论是在开发社区模块/主题,或者项目中,遵守Drupal的官方代码标准在协同开发中有时候显的很重要。这不仅是代码质量的体现,而且我们也推崇这种开发方式。
下面介绍如何通过在本地安装和使用pareview.sh来检查代码标准;和一些简单phpcs命令来进行符合Drupal标准的代码格式化。
本文参照原官方说明进行统一编辑,由Weynham共同协助完成。
如何你的模块已经在线上,比如github或者Drupal的git仓库,可以使用在线的pareview.sh工具。
  • 安装Composer
    • curl -sS https://getcomposer.org/installer | php
    • sudo mv composer.phar /usr/local/bin/composer
  • 安装Coder (reference: https://www.drupal.org/node/1419988#coder-composer)
    • $ composer global require drupal/coder
    • $ sudo ln -s ~/.composer/vendor/bin/phpcs /usr/local/bin
    • $ sudo ln -s ~/.composer/vendor/bin/phpcbf /usr/local/bin
    • $ phpcs --config-set installed_paths ~/.composer/vendor/drupal/coder/coder_sniffer
  • 安装codespell (reference: https://github.com/lucasdemarchi/codespell)
  • 安装DrupalSecure (reference: https://www.drupal.org/sandbox/coltrane/1921926)
    • $ sudo apt-get update && sudo apt-get install php-pear
    • $ sudo pear install PHP_CodeSniffer
    • $ cd $(pear config-get php_dir)/PHP/CodeSniffer/Standards/
    • $ git clone git://git.drupal.org/sandbox/coltrane/1921926.git secure_cs
    • $ sudo ln -sv ./secure_cs/DrupalSecure ./DrupalSecure
  • 安装ESLint 
    • $ sudo npm install -g eslint
      
      
      在Ubuntu precise (12.04), 你有可能会遇到以下错误:
      npm http GET https://registry.npmjs.org/
      npm ERR! Error: failed to fetch from registry: 
      
      This is because the version supplied by Ubuntu 12.04 is no longer supported, updating node (and npm with it) resolved the issue.
       

      首先, 卸载nodejs版本

      sudo apt-get purge nodejs npm
      

      启用nodesource's仓库并进行安装:

      curl -sL https://deb.nodesource.com/setup | sudo bash -
      sudo apt-get install -y nodejs
      
    • $ sudo apt-get install nodejs
    • $ eslint --init # run for the first time
  • 安装pareviewsh
查看pareview是否已经安装成功
  • $ pareviewsh /path/to/module or /path/to/git-repos.git
phpcs自动修复代码标准
  • phpcbf --standard=Drupal --extensions=php,module,inc,install,test,profile,theme,js,css,info,txt,md /file/to/drupal/example_module
     具体参照:https://www.drupal.org/node/1587138