- ベストアンサー
PHPの慣習的な書き方・組み方について
- PHPの慣習的な書き方や組み方について質問があります。
- 変数宣言について、接頭辞を付けるべきかどうかについて知りたいです。
- ファイルと関数のまとめ方や命名規則について教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
私は我流なのでプロジェクト内での運用はわかりませんが参考までに >PHPプログラマーの方って、慣習的にどんな変数にしていますか? 型がわからない変数であれば「ハンガリアン記法」が有効かもしれませんね ただ、必ずしも正しいとは言えないので、プロジェクトの方針次第だと思います。 http://ja.wikipedia.org/wiki/%E3%83%8F%E3%83%B3%E3%82%AC%E3%83%AA%E3%82%A2%E3%83%B3%E8%A8%98%E6%B3%95 個人でやる場合は覚えていられる範囲で適当につけて弊害はあまりないでしょう。 かくいう私もあまり気にせずに適当に命名しています。 むしろいい加減に見えるところがPHPの敷居をさげて間口を広げている利点ですから。 (逆にそのせいで初心者がぶちあたる壁もあるのですが・・・) >それぞれのファイルに >同じ関数を書き込む さすがにそれはないですね。 よく使うコマンドなどはcommon.phpなどを用意してクラス化するのが妥当でしょう。 >入力チェックなども関数化 ある程度標準化はできるでしょうけど、バリデート・サニタイズ関連は かなり個別ケースが多いので都度でチェック用関数を作る方がよいような気がします。 >突然、知らない関数が出てきて、自作の関数だと気付く これはあまり気にしないのがよいかと そもそも関数は宣言されているのが前提なので、プログラムの一部だけ切りだして 改変するならともかく、全体を見据えて行えばさほど問題にはなりません。 また標準関数はいずれにしても名前を覚えないと話にならないので しらない関数名がでてきたらマニュアルを参照すればユーザー関数と判断できます。 また統合ツールでユーザー関数の参照もできるものもあるし、エディタだって タグジャンプすればすぐですから むしろ命名方法としてはラクダ式(キャメルケース/パスカルケース)にするか アンダスコア式(スネークケース)にするかの統一とか、動詞-形容詞-名詞の 順番をどうするとか、ゲッタやセッタで接頭辞にget、setをつけるとか 当たり前のようなことの方が意外に統一されてないとみにくくなるので 注意が必要ですね。 一応公式にも最低限の提言がでています。 http://www.php.net/manual/ja/userlandnaming.php Zendだとこのへん http://www.zend.co.jp/tech/index.php?%A5%B3%A1%BC%A5%C7%A5%A3%A5%F3%A5%B0%BB%D8%BF%CB あとはこのへんとか参考にしてください http://www.okapiproject.com/java/java_codeconventions/jcc_naming.htm
その他の回答 (2)
- saintandre
- ベストアンサー率31% (194/607)
ハンガリアン記法は現在ではオブジェクト指向との相性が悪いのであまり推奨されていないようです。オブジェクト指向プログラミングでの記法についてはMSDNの名前付けのガイドラインが参考になるとおもいます。 名前付けのガイドライン http://msdn.microsoft.com/ja-jp/library/cc433292%28v=vs.71%29.aspx 注目すべきは「メソッドの名前付けのガイドライン」と「プロパティの名前付けのガイドライン 」です。とりあえずメソッドが関数名、プロパティが変数名と考えていただければ結構です。
お礼
ありがとうございます。メソッドとプロパティでは、なんとなく自分でも使い分けていました。
- kosukejlampnet
- ベストアンサー率44% (126/282)
おっしゃるとおりですね。 自分の場合、チーム開発をする機会があまりないので、厳格なルールを持っていないのです。 後で自分が書いたはずのソースコードを解読できなくなっても困るので、ある程度の癖があります。 お恥ずかしい限りですが... 問1 混乱しそうなときだけ、接頭辞をつけたり、コメントを書いています。たいてい変数は「名詞」をそのまま使うことが多いです。 PHPを利用したたとえばPEARライブラリの開発では「コーディング規約」を設けています。 http://pear.php.net/manual/ja/standards.php 問2、3 自分はクラスを書いて、再利用可能な形にしています。 問4 自分の場合、接頭辞はつけませんが、「動詞+目的語」のような命名をすることが多いです。
お礼
回答ありがとうございました。 意味のある名付け方をしているわけですね。変数の名付け方にしろ、ある程度、我流になってしまうのも仕方ないことかもしれませんね。 おおきく外さないように、回答を参考にしながら組んでいきたいと思いました。
お礼
長文回答ありがとうございました。 なるべく定石めいた名付け方や作り方をしたいものです。何度も使う関数は、別ファイルを作って呼び出すようにしました。 1歩前進できたような気がします。