コネクト株式会社 技術情報コンテンツ | ||
[[コーディング指針]] スクリプト記述ルールスクリプトの記述ルールの基底概念は、PEAR コーディング規約に順ずるものとする。 ここでは、主な記述ルールについて説明する。 ヘッダのコメントブロック各スクリプトには、使用するPHPのバージョンや、スクリプトのライセンス形態などを明記しておく事が望ましい。 PEARコーディング規約に則り、以下のコメントブロックをスクリプトの先頭に設ける事を推奨する。
<?php
詳細については、PEARマニュアルのヘッダコメントブロックを参照する事。 これまでのphpDocumentorではPHP 5に対応しきれなくなったため、バージョンアップと共にPHP 5対応となった。そのため、ヘッダコメントブロックの記述方法が大きく変わっているので注意する事。 命名規則PEARコーディング規約に則り、ファイル名や変数名など、PHPに関する命名規則を定義する。 クラスクラスは、そのクラスの用途が分かる名前にするべきである。 また、名前は単語単位で区切り、各単語の頭文字を大文字、2文字目以降を小文字とし、単語の間をアンダースコア(“_”)で結合したものとする。 例)
2つ以上の単語から成り立つ名詞の場合は、次のように命名する。
関数およびメソッド関数およびメソッドは、【動詞】または【動詞+名詞】となるように命名する。 この時、動詞は全て小文字で記述し、名詞の頭文字を大文字、2文字目以降を小文字で記述すること。 例)
プライベートメソッドは、メソッド名の先頭に“_”をつけること。 ただし、PHP 5以前ではパブリックとプライベートの区別が全く無いため、利用者が区別をする必要があるので注意。 定数定数の名前は、全て大文字で記述する事。 また、名前の重複を避けるためにも、“Example::”パッケージで宣言する定数は、“EXAMPLE_”で始まるようにする事。 グローバル変数パッケージでグローバル変数を使う場合、アンダースコアで始まり、パッケージ名などをアンダースコアで結合したものを変数名として使う事。 例)
インデントインデントは、ハードタブ(\t)を使わず、半角空白4文字で記述する。 1行あたりの文字数は76文字を上限とし、76文字を超える場合は次行に折り返して記述する。その際、行頭にはインデントを1レベル追加(ぶら下げ)する。 サンプルコード$sql = 'SELECT name, age, birthday, zipcode, address, comment ' . 'FROM user_information WHERE user_id=? AND is_delete = 0'; // 長くなる文字列は、上記のように分割して、"."で結合すると良い エディタの設定【Zend Studio】
【vi(またはviクローン)】 set expandtab set shiftwidth=4 set softtabstop=4 set tabstop=4 制御構造if, for, while, switch 等の制御構造は、次のルールで開き括弧を記述する if, else, elseifif ($flag1) { $ret = 1; } elseif ($flag2) { $ret = 2; } else { $ret = 3; } forfor ($var = 0; $var < $maxvar; $var++) { echo $var . "\n"; } foreachforeach ($var as $key => $value) { echo $key . ":" . $value . "\n"; } whilewhile ($flag) { var_dump($flag); } do〜whiledo { var_dump($flag); } while ($flag); switch, caseswitch ($var) { case "1": break; case "2": break; case "3": break; default: break; } 関数function isFoo($var) { return strcmp($var, "foo") === 0; } クラス、メソッドclass Foo { var $_foo; function Foo() { $this->_foo = 1; } function isFoo($var) { return strcmp($var, "foo") === 0; } } 関数およびメソッドの記述ルール引数とオブジェクト引数にオブジェクトを用いる際は、必ず参照渡しを使う。 function getName(&$obj) { return $obj->getName(); } 戻り値とオブジェクト戻り値にオブジェクトを返す場合、クローンが不要であるなら参照渡しを行う。 function &getObj($obj) { return $obj->getItem(); } PHP 5との互換性の実現PHP 4を対象にコーディングを行う場合でも、以下の点に注意をすれば、PHP 5への移行作業が容易になる。
|