Seo tools

Neo Inspiration

  • Search

    • About Me

      • inspi 改め
        jakk@webアーキテクト(自称)
        php,javascript,seoなど
        得意技は extract();



  • Categories

  • Ranking

  • Comments

  • Others


  • 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目に0×5Cを含む文字の動作を忘れずに確認する。
    * 開発環境の警告レベルを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

    2008/11/22 05:43:27