PEARのコーディングスタイルをかいつまんでみた
最近コードを書けば書くほど汚い・見づらい・統一性がない問題に苦しんでいます。
偉大な先人たちのコーディングスタイルを素直に取り入れることにしました。
基本構文を記述する上で参考になりそうなところをまとめています。
参考: PEAR コーディング規約
http://pear.php.net/manual/ja/standards.php
ファイルフォーマット
・改行コードは LFで統一
・php終了タグの後には改行を1つおく
・PHPコードタグは省略しない の形にする
・インデントはタブを利用せずに空白4つを利用する
E_STRICT互換コード
・phpのエラーレベルを E_ALL | E_STRICTにした場合に警告やエラーが一切出ないようにする
外部コード読み込み
・require_once() を基本的に利用する
・include_once() はクラスファイルを条件付きで読み込み場合に利用する
制御文
// 制御キーワードと開きカッコの間に空白をひとつ置く・波カッコを省略しない
// if文
if ((conditions1) || (condition)) {
action;
} else {
defaultaction;
}
// Switch文
switch (condition) {
case 1:
action1;
break;
case 2:
action2;
break;
default:
defaultaction;
break;
}
関数呼出
$var = hoge($bar, $baz, $quux); // カンマの後ろは空白をおく
変数のインデント
// 関数名・開きカッコ・閉じカッコの間には空白を入れない
// 変数名に合わせてインデントをそろえてもいい
$short = foo($bar);
$long_function = foo($hoge);
クラス定義
// クラスの範囲の頭に波カッコをつけて始まりと終わりを明示的にする
class Move_Hoge
{
// 処理
}
関数定義
K&R スタイルに基づく
function fooFunction($arg1, $arg2)
{
if (condition) {
statement;
}
return $val;
}
// 引数にデフォルト値がある場合は引数の後ろに記述する
function connect(&$dsn, $persistent = false)
{
if (is_array($dsn)) {
$dsninfo = &$dsn;
} else {
$dsninfo = DB::parseDSN($dsn);
}
if (!$dsninfo || !$dsninfo['phptype']) {
return $this->raiseError();
}
return true;
}
命名規約
・クラス名 : 可能な限り内容が理解できるように先頭は大文字で記述
・グローバル変数及び関数 : ローワーキャメル記法
・プライベートなクラスメンバ : 頭にアンダーバー $_status _sort() _initTree()
・定数(全て大文字) DB_DATASOURCENAME
コメント
項目が多数あるのでサンプルへのリンクを置いておきます。
コメントのサンプルファイル
ヘッダコメントのサンプルファイル
-
前の記事
活動ログ 2011/03/29 2011.03.29
-
次の記事
Minecraft 初心者でも作れる簡易型エレベータ 2011.04.02