先日、WordPressコアのテスト要件からPHP5.6未満がドロップされたことをお伝えしたが、コーディングスタンダードもそれに追従して変更されるようだ。makeブログに投稿された “Coding Standards Updates for PHP 5.6” によると……
無名関数/クロージャー
無名関数は使ってもオーケー。ただし、フックにかけると削除できなくなるので、アクションフック・フィルターフックの引数としてはコアで使わない。テーマ・プラグイン内で使う分には開発者の自由。
// こういう風にしてしまうと削除できなくなるのでダメ。 add_filter( 'the_content', function( $content ) { return do_something( $content ); } ); // こういう使い方はオーケー。 $str = preg_replace_callback( '/(\d{4})(\d{2})(\d{2})/u', function( $matches ) { array_shift( $matches ); return implode( '-', $matches ); }, $str );
名前空間
名前空間は移行するのが大変すぎるので、コアでは使わない。将来的な予定もない。ただし、いいアイデアがあれば移行するかもしれない。
省略記法
- 配列はJavaScriptと同じ
[ 1, 2, 3 ]
を用いなければならない。array( 1, 2, 3 )
は将来的に廃止。 - 省略三項演算子
$person = $ichiro ?: 'ニッチロー';
は使ってもいい。
以上、これらはまだ提案段階ではあるが、徐々にWordPressのコアにも採用されていくことだろう。
おまけ・WordPressのコーディングスタンダード
- WordPressのコーディングスタンダードはHandbookで確認することができる。CSS, HTML, PHP, JavaScriptなどがあるので目を通しておこう。日本語版はこちら。
- PHPに関してはPHP CodeSnifferのルールセット wpcs が存在する。Composerで入れることもできるので、プロジェクトごとに入れておくとよいだろう。また、PhpStormなどのIDEはインスペクタ機能としてPHP CodeSnifferのルールを追加することができるので、グローバルに設定しておくと書いている側からエラーが出るのでわかりやすい。
- JavaScriptに関してはeslintのプラグインが公式で配布されているので、そちらを利用しよう。こちらもちゃんと設定すると、PhpStormなどのIDE中からリアルタイムでチェックすることができる。