使用PHP_CodeSniffer对代码进行格式化
首先
当我们在进行团队开发时,如果每个人都按照自己的规则编写代码,那么很快代码就会变得混乱不堪。如果能够按照相同的规则整理代码,那将非常方便。
在PHP中有一些可以按照规则解析代码的库,包括PHP CS Fixer和PHP_CodeSniffer。本次我们将讨论PHP_CodeSniffer的引入步骤和使用方法。(※关于PHP CS Fixer和规则,将在以后的文章中详细写作。)
目录
-
- はじめに
-
- 目次
-
- Installation
-
- Getting Started
-
- Usage
使いやすいように
phpcs.xml
コマンド
カスタムコマンドの追加
コマンド
おわりに
参考文献
規約
GitHub
Composer
安装
只需要在开发环境中使用codesnifer,所以加上-dev选项。
composer require "squizlabs/php_codesniffer=3.*" --dev
参考下述关于作曲家的内容。
开始
由于成功安装了 PHP_CodeSniffer,现在可以在项目中使用它了。
按照 PSR-12 格式进行检测和整理。
# 規約に反している箇所を検知
./vendor/bin/phpcs --standard=PSR12 [対象ファイル]
# 規約に沿って整形
./vendor/bin/phpcbf --standard=PSR12 [対象ファイル]
使用
详细的使用方法以及选项等请参阅此处。
为了方便使用
每次输入上述命令都很麻烦。(我也记不住……)因此,我准备了一个预先编写了规则的设置文件,并使用它来让它可用。
phpcs.xml 的含义是什么?
在根目录下创建phpcs.xml文件。
touch phpcs.xml
支持 PSR12。
<?xml version="1.0"?>
<ruleset name="Custom Standard" namespace="MyProject\CS\Standard">
<description>PSR12</description>
<!-- 対象ファイル -->
<file>./</file>
<!-- 除外したいファイル -->
<exclude-pattern>./vendor/*</exclude-pattern>
<!-- 色を付けてわかりやすく -->
<arg name="colors"/>
<!-- s: エラー時ルール表示, p: 進捗表示 -->
<arg value="sp"/>
<!-- 適用規約 -->
<!-- PSR-12 PSR-1が前提となっているので -->
<rule ref="PSR12"/>
</ruleset>
指令
./vendor/bin/phpcs --standard=phpcs.xml
./vendor/bin/phpcbf --standard=phpcs.xml
添加自定义命令
为了使使用更加简单,我们将在 composer.json 的 scripts 中进行补充记录。
"scripts": {
"phpcs": "./vendor/bin/phpcs --standard=phpcs.xml",
"phpcbf": "./vendor/bin/phpcbf --standard=phpcs.xml"
}
命令
能够直观地使用了呢。
composer phpcs
composer phpcbf
最后
在团队内预先确定上述设置,可以遵循规范进行开发。同时,我认为这也会在整个团队中激发遵循规范编写代码的意识。通过这样做,代码审查时审查人员无需担心,可读性也会提高!
文献引用
条款
- PSR-12: Extended Coding Style
GitHub的中文解释
- PHP_CodeSniffer
作曲家
-
- Composerコマンドまとめ
- Writing custom commands