Macがぶっ飛んでから設定してなかったのでメモ。
PHP_CodeSnifferを使ってWordPressのプラグインやテーマがコーディングスタンダードに準拠しているかチェックする | Firegoby
PHP_CodeSniffer + WordPress-Coding-Standards をインストールする | deadwood
以前、宮さんの記事を参考に設定して、同じよーなエラー出て、修正できてたのに、今回また同じよーにエラー出たので、これやったらいかん…のにやっちまったので…(^0^;)
目次
エラー
[code]
$ wpcs post-notifier.php
ERROR: the "WordPress" coding standard is not installed. The installed coding standards are MySource, PEAR, PHPCS, PSR1, PSR2, Squiz and Zend
[/code]
“WordPress” coding standardないよ?あるのはMySource, PEAR, PHPCS, PSR1, PSR2, Squiz and Zendだけだよ?ってやつ。。
でも、ディレクトリにはちゃんとある。
~/.composer/vendor/squizlabs/php_codesniffer/composer.jsonの中身を見てみると、
[code]
"autoload": {
"classmap": [
"CodeSniffer.php",
"CodeSniffer/CLI.php",
"CodeSniffer/Exception.php",
"CodeSniffer/File.php",
"CodeSniffer/Fixer.php",
"CodeSniffer/Report.php",
"CodeSniffer/Reporting.php",
"CodeSniffer/Sniff.php",
"CodeSniffer/Tokens.php",
"CodeSniffer/Reports/",
"CodeSniffer/Tokenizers/",
"CodeSniffer/DocGenerators/",
"CodeSniffer/Standards/AbstractPatternSniff.php",
"CodeSniffer/Standards/AbstractScopeSniff.php",
"CodeSniffer/Standards/AbstractVariableSniff.php",
"CodeSniffer/Standards/IncorrectPatternException.php",
"CodeSniffer/Standards/Generic/Sniffs/",
"CodeSniffer/Standards/MySource/Sniffs/",
"CodeSniffer/Standards/PEAR/Sniffs/",
"CodeSniffer/Standards/PSR1/Sniffs/",
"CodeSniffer/Standards/PSR2/Sniffs/",
"CodeSniffer/Standards/Squiz/Sniffs/",
"CodeSniffer/Standards/Zend/Sniffs/"
]
},
[/code]
となってた。WordPress入ってない。
結局、Google先生に聞いて、前に参考にさせてもらった記事を発見。
PHP_CodeSniffer + WordPress-Coding-Standards をインストールする | deadwood
登録して、
[code]
$ phpcs –config-set installed_paths ~/.composer/vendor/squizlabs/php_codesniffer/CodeSniffer/Standards/WordPress
[/code]
無事完了 🙂
[code]
$ phpcs -i
The installed coding standards are MySource, PEAR, PHPCS, PSR1, PSR2, Squiz, Zend, WordPress, WordPress-Core, WordPress-Docs, WordPress-Extra and WordPress-VIP
[/code]
~/.composer/vendor/squizlabs/php_codesniffer/CodeSniffer.conf 内に
[code]
<?php $phpCodeSnifferConfig = array ( ‘installed_paths’ => ‘/Users/NAME/.composer/vendor/squizlabs/php_codesniffer/CodeSniffer/Standards/WordPress’,
)
?>
[/code]
ができてた。今からチェックスタートな所っす。
Using custom ruleset
If you need to further customize selection of sniffs for your project — you can create custom
ruleset.xml
standard. See provided project.ruleset.xml.example file and fully annotated example in PHP_CodeSniffer documentation.
っとruleset.xmlのサンプルもあるみたいなので、これも試してみた方がいいかもなぁ…(^0^;)
PhpstormだとWordPress-Coding-StandardsのCode Sniffer使えるんすね
PhpStormにWordPress-Coding-StandardsのCode Snifferを設定する。Mac編 – Qiita
~/.composer/vendor/squizlabs/php_codesniffer/CodeSniffer/Standards/WordPress/README.md
↑↑に
PhpStorm
Please see “PHP Code Sniffer with WordPress Coding Standards Integration” in PhpStorm documentation.
Sublime Text
Install the sublime-phpcs package, then use the “Switch coding standard” command in the Command Palette to switch between coding standards.
の記載がありました。
早速設定してみると、
のようにハイライトしてくれます。
しかし、ターミナルからチェックした方が圧倒的に突っ込みが多いです。。
[code]
———————————————————————-
FOUND 82 ERRORS AND 3 WARNINGS AFFECTING 62 LINES
———————————————————————-
11 | ERROR | [ ] Missing @package tag in file comment
| | (Squiz.Commenting.FileComment.MissingPackageTag)
13 | ERROR | [x] Space after opening control structure is
| | required
| | (WordPress.WhiteSpace.ControlStructureSpacing.NoSpaceAfterStructureOpen)
13 | ERROR | [x] Inline control structures are not allowed
| | (Generic.ControlStructures.InlineControlStructure.NotAllowed)
13 | ERROR | [x] Expected 1 space after IF keyword; 0 found
| | (Squiz.ControlStructures.ControlSignature.SpaceAfterKeyword)
17 | ERROR | [ ] Missing class doc comment
| | (Squiz.Commenting.ClassComment.Missing)
19 | ERROR | [ ] Missing function doc comment
| | (Squiz.Commenting.FunctionComment.Missing)
[/code]
……まだまだ大量にあります…(*_*)
スペースやコメントとかスゲーチェック入るんすね。。あとコメントスタイルは、”/**”を使えよ?とも言われました。。
ふぅ…。一度やってしまえば多分後は楽なはず!!
後もう少しっすな 🙂
おわた
[code]
$ wpcs post-notifier.php
Registering sniffs in the WordPress standard… DONE (81 sniffs registered)
Creating file list… DONE (1 files in queue)
Changing into directory /vccw/www/wordpress/wp-content/plugins/post-notifier
Processing post-notifier.php [PHP => 2552 tokens in 365 lines]… DONE in 183ms (0 errors, 0 warnings)
Time: 240ms; Memory: 8.75Mb
[/code]
0になりました 🙂
パラメータの説明はピリオドで終われよ?とか、結構細かいチェック入りましたが、いい勉強になりました (^^)