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

コメント

項目が多数あるのでサンプルへのリンクを置いておきます。
コメントのサンプルファイル
ヘッダコメントのサンプルファイル