PHPのコーディング規約?メモ?


PHPがメインのうちの人たち用に

PHPのコーディング規約?メモ?
全て網羅されてるか というと自分でもよくわからないですが、
最低限ここは抑えよう という指標としてみて欲しいです。

以下すべて引用
http://slashdot.jp/askslashdot/comments.pl?sid=389009&cid=1290697

* コーディング規約を守る。組織にコーディング規約がないなら、Zend Framework PHP標準コーディング規約 [zend.com]を使う。オレ流コーディングスタイルは禁止。
* 内部コードにはEUC-JPかUTF-8を使う。入出力もできるだけShift JISを避ける。Shift JISを使う場合には2byte目に0x5Cを含む文字の動作を忘れずに確認する。
* 開発環境の警告レベルをE_STRICTにする。本番環境ではdisplay_errorsをオフにする。
* register_globals、magic_quotesはオフにする。
* type hintingを積極的に使う。
* スコープの長い配列をクラスでラップする。
* プレゼンテーションとロジックを分割すること。プレゼンテーションには変数または関数の出力とループ以外のロジックを残さないこと。ロジックの中で直接出力をしないこと。ロジックはSimpleTestを使って単体テストすること。
* SQL文に変数を埋め込むときにはプレースホルダを使う(PDOのprepareとbindParams)。
* リクエストから取得したパラメータを出力するときはhtmlspecialcharsを使う。
* 関数が長くなったら分割する(composite methodパターンを使おう)。
* グローバル変数を使うのは避ける。
* 変数を定数として使わない。定数はdefineで定義するか、const宣言する。
* 常に最新バージョンでテストできる環境を作り、サービスイン後もバージョンアップに対応するための予算をとっておく(サービスイン後にお金をかけたくないなら、PHPは避けるべき)。
* 継承を使うなら、クラス図くらいは書いておく(単にコードを再利用したいだけなら、移譲を検討すること)。
* 各URLにおけるパラメータとその閾値を文書化すること。パラメータの閾値の境界線についてソースレビューし、テストすること。
* 既存のフレームワークを学習することに投資すること(学習コストを嫌って自己流のフレームワークを作ることは、バグを作りこむことになるのでかえってコスト高になる)。
* PHPしか使えない作業者の成果物はこまめにレビューすること。
* 設計を重視すること。
* コピー&ペーストプログラミングの匂いを発見したら、そのコードを書いた人にプログラミングの基礎を教えること。
* リファクタリングの時間をスケジュールに入れること。
* require/includeを条件文や関数宣言の中に記述しないこと。

量があるように見えて、
最低でもこのくらいチェックできないとダメなんですよね。

自分でもテスト環境のこととかちゃんと管理しないとなー。

おまけ
1:htmspecialcharsは ENT_QUOTESつけてやろう。
  htmspecialchars($data, ENT_QUOTES);

2:ZENDの PHP標準コーディング規約
http://framework.zend.com/manual/ja/coding-standard.html


Leave a Reply