WordPressの新しいPHPコーディングスタンダードが策定中

先日、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中からリアルタイムでチェックすることができる。
WordPress用のコーディングスタンダードを入れておくと悩む必要がなくなる。

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください