2009-07-28 14 views
7

まず、私はそのようなことについて肛門であることを認めます。 (悪い、悪い、私)しかし、私はちょうどPHPインクルードファイルの命名の点でベストプラクティスと考えられているのだろうかと思っています。PHPにファイル拡張のベストプラクティスが含まれています

ベースケースとして、私は(フェッチされている未解析されたファイルを防ぐために)最終延長としての.php維持するつもりだけど、フロントエンドファイルとインクルードファイルとの区別を支援するために私は行くのいずれか:

  1. 名前ClassName.class.phpとして上記のように(非クラス)ファイルとクラス定義の一般的なXXX.inc.php

  2. 名(潜在的に便利なインクルードファイルのすべて私はそうではありませんが、ラインの下の自動ローダーの利用のために自動ローダーの大ファン。)

は、私は現在、オプション2のために膨化んだけど、あなたがお勧めしたい他の提案やアドバイスのビットがある場合、私はただ思ったんだけど。

答えて

7

まず、すべてのPHPファイルの拡張子を「.php」にする必要があります。そのために2つの理由:

  • あなたが述べたように、それはまた、ファイル名に基づくシンタックス・着色を行うIDE /エディタに役立ちます非解析されたファイルは
  • フェッチされるのを防ぐことができます:あなたが設定する必要はありませんそれは ".inc"をPHPファイルとみなすためのものです。

私は別の場合もありますが、その主な理由は、ファイルの命名規則についていくつかのルールを持つツール(CMS、Framerwork、ライブラリなど)を使用している場合です。例えば

:Drupalのでは

  • 、私は私が ".phtml" を使用し、Zend Frameworkのでは "の.inc"、 ".module"、 "な.install"、...
  • を使用しますビュースクリプト(HTML + PHP)

クラスを含むファイルの場合、私は ".class.php"が好きではありません。私は "MyClassName.php"を使い、これをオートロードに使う傾向があります。
は追記として

(ところで、それは、Zend FrameworkのかドクトリンORMお勧めのようなフレームワークものです):あなたはオートローダの大ファンではないと言います。どうして ?

  • パフォーマンスのために、一般的に良くは:あなたが本当に使用コードのみがロードされている(なしrequire/include
+0

私は一般的にオートローダーのファンではありません。手動ローダーのように明示的ではないからです。 (私の考えでは、変数の宣言を説明するのと幾分同等です)。それは、状況が進行していること、そしてリソースのオーバーヘッドが今日ほとんど無関係であることを認識しています。 –

+0

私たちは1つのことに同意します:それはマニュアルとして明示的ではありません:-)(少なくともコードを書いているときにクラス名が分かっている場合) –

+0

これは古い投稿であることを認識していますが、インターフェースと特性はファイル 'ClassName.php'の中で' InterfaceName.php'と 'TraitName.php'はすべて実名と同じに見えます。 –

6

クラスファイルにはClassName.class.phpを使用し、クラスファイルには​​を使用します。

.inc.phpのファンではありません。ファイルの内容ではなく、ファイルをどのようにインポートするかという点で、ファイルを説明するのに間違っているようです。

+0

を書くために/

  • 以下のコードを解析され、私はできるよう
    私はできるだけ多く、それらを使用します私は通常、含まれる静的HTMLに '.inc'ファイルを使用します。したがって、 'login.inc' –

  • +1

    多くのフレームワークを見ると、クラス用のフォルダがあればそこに.class.phpを入れる必要はありません。一方、すべてのファイルを持つ「アプリ」フォルダを持っていれば、多分、フォルダ構造を再考するといいでしょう。 – Garrett

    +1

    .lib.phpのアイデアと同じように、XXX.inc.phpを使わないという根本的な根拠に完全に同意します。これはおそらく、私に「正しい」と感じていないのかもしれません。 –