WordPressテーマ開発で使うコーディング規約のメモ
目的
WordPress開発においてよく使用するコーディング規約のメモ。
毎度どこかに確認しにいくのが面倒だったので、このページにまとめて書いておこうという意図で。
参加するプロジェクトにもよるし、作るものが自分の中で閉じるものだったらどう書いたってかまわないと思いますが、 一定のルールがあったほうが後で読みやすいのでお薦めです。
メリットは以下かと
- 後で読みやすい。(明日の自分は今日の自分ではない可能性が多いため、たいていコーディングした時の意図を忘れている。)
- 人に渡すことになっても文句を言われずらい
- 操作がしやすい(デバック時や大きな修正が入る時に正規表現などで情報を取得しやすい)
個人的にいつもよく迷って、気にしてしまうのは命名規則とインデントくらい。
PHP
PHP コーディング規約 – WORDPRESS Codex(日本語版)、およびPHP.netを参考にしています。個人的に良く忘れるものだけ抜粋します。
インデント
インデントには本物のタブを使用します。スペースは使わない。
<?php
echo "this is php.";
?>
命名規則
変数、アクション、関数の名前にはアルファベット小文字。単語はアンダースコアで区切る。単語の省略はしない。
PHPのコーディング規約を追加するならば、 PHP の拡張モジュールのグローバルシンボルには、 その拡張モジュールの名前を先頭につけます。
$theme_name = "WEBMEMO"
function curl_get_urllist {
...
}
クラス名は大文字で始まる単語をアンダースコアで区切り。省略語はすべて大文字
※WordpressとPHPの違いとしてPHPでは”クラスの場合は、 キャメルケース (camelCase) 形式や パスカルケース (PascalCase) 形式を使います。”とある。
WordPressではキャメルケースは使わないと記載があり。
class My_Wordpress_Class { [...] }
class MY_WC { [...] }
定数はすべて大文字で、アンダースコアで区切る
php定数のコーディング規約を追加するならば、 文字またはアンダースコアで始まり、任意の数の文字、数字、 アンダースコアが後に続く
正規表現:[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*
define("HOGE_BAR_2", "something else");
ファイル名はアルファベットの小文字を使用、内容を説明する名前にする。単語はハイフンで区切る。
クラスファイルの名前はクラス名を基にして、前に「class-」を付け、クラス名内部のアンダースコアはハイフンで置き換えます。
plugin-thumbnail-list.php
class-thumbnail_list.php
Javascript
JavaScript コーディング規約 – WORDPRESS Codex(日本語版)を参考にしています。
インデント
インデントにはタブを使用する。
※参考までに、Googleのコーディング規約ではインデントにタブは使うなと記載されている
if ( hoge ) {
...
} else if ( ( a && b ) || c ) {
...
}
命名規則
変数名と関数名は省略しない完全な単語を使用し、最初の文字を小文字にした camelCase を使用する。
new での利用を想定するコンストラクターは最初の文字を大文字にする。
※イテレーターは例外
var myThumbnail = "aaa";
var myObj = new MyMethod();