概要
WordPress JSON REST APIのリポジトリにはWordPressプラグイン開発のベストプラクティスとも言えるCI環境が整ってます。これを自分の開発環境にも適用してみました
以下、WordPress JSON REST APIの開発で使用されているツールをいくつか紹介します
PHP Code Sniffer
正しくコーディング規約が守られているかをチェックするためのツールです。問題があれば自動でコードを修復してくれる機能もあります。
WordPress JSON REST APIはWordPress Coding Standardsを使ってWordPressのコーディング規約をチェックしています。
実行するとこんな感じです。これはエスケープ漏れっすね。esc_html_eやesc_attr_e関数をつかって出力時はエスケープしなさい!と怒られています。
その他にも、nonceが設置されてなかったら、CSRFの危険があると指摘してくれたりと、至れり尽くせりです。
コーディング規約もWordPress.com VIP用の規約なんかもあります。
WordPress.com VIP code-review-what-we-look-for
これを有効化するとposts_per_pageに-1を指定したり、独自のSQLを発行するだけで怒られてしまいます。
確かに提供するホスティングサービス上で好きなSQLを発行されてDBに負荷かけるのはやめて欲しい気持ちはわかりますが、えらい厳しいっすね。
PHPUnit
Make WordPress Core
WP-CLI+PHPUnitを使ったWordPressプラグインのユニットテスト(1)
使い方は上記に詳しく説明されてます。
PHPLint
http://www.icosaedro.it/phplint/
PHPの文法の構文チェックをしてくれるツールです。
Scrutinizer
これはTravis CIと同様のCIサービスです。ざっくり言えばコード全体を解析してイケてるコードかどうか点数をつけてくれます。
ちなみに僕の公開しているプラグインはこんな感じ。
https://scrutinizer-ci.com/g/horike37/wp-syndicate/
自動でパッチを作ってくれたり、ここからGithubにissueを立ててくれたり色々やってくれます
自分のプラグインにこれらのツールを入れる
https://travis-ci.org/horike37/wp-syndicate/jobs/69370112
このあたりのツールを入れてTravis CIを回します。
まあ、ここまで細かくチェックしてたら、そうそうバグやセキュリティホールを誤って仕込んでしまうってことはなくなりますね。