PHPクラスにはどのような命名規則を使用していますか?[閉まっている]


8

ClassNamesmemberNamesを慣例として使用するのは本当に好きですが、クラスを含むファイルにどのように名前を付けるかわかりません。

クラスとまったく同じ名前のファイルでクラスを定義するのが好きです。しかし、phpファイルをすべて小文字にすることも好きです。だから私は対立しています。

私はと呼ばれるクラスを持っている場合はProductGroupその中で定義されるべきProductGroup.phpproductgroup.phpまたはproduct_group.php

私は正しい答えがないことを知っているので、私は最も一般的なもの、またはどちらを使用するかについてのあなたの意見を探しています。どちらを使用しますか?

回答:


6

作業では、フォルダーの区切り文字としてアンダースコアを使用し、ファイルにはパスとまったく同じ名前を付けます。オートローダーは非常にシンプルです。_を/に置き換え、最後に「.php」を追加するだけです。ProjectName_Models_ProductGroup()は常にProjectName / Models / ProductGroup.phpにあります。非常に長いクラス名になる場合がありますが、IDEではそれほど問題になりません。

同じ規則を使用できますが、ファイルを含める前にstrtolower()を実行するだけです。


3
+1これはZend Frameworkで採用された規約で​​あり、広く受け入れられているようです。
bogeymin

クラスにファイルパスとまったく同じ名前を付けるということですか?
systemovich 2010

@Geoffery、はい、スラッシュがアンダースコアに置き換えられることを除いて、まったく同じです。すべてのサーバーはLinuxで実行されるため、大文字と小文字が区別され、非常にシンプルなオートローダーになります。
Asa Ayers、

1

通常、「ProductGroup」クラスを「ProductGroupClass.php」という名前のファイルに入れ、通常は「classes」ディレクトリ構造に格納します。


11
それはやり過ぎだと思います。クラスと呼ばれるディレクトリ内のファイルにクラスを追加するのは冗長すぎるようです
Matt Ellen

1

私はファイルにクラス名と同じ名前を付けようとしますが、小文字です。これはautoload関数にも役立ちます。


1

PEARコーディング標準の修正版を使用しています。前に述べたように、それはオートローディングに役立ち、IMOは少しすっきりとして読みやすく見えます。基本的には、何が機能するかを判断してそれに固執するだけです。すべてのコードが同じように見える限り、最終的に残りは適切な場所に配置されます。


0

アプリケーションにまたがるクラスファイル(「ライブラリ」)と、アプリケーションに固有のクラスファイルがあります。ライブラリには接頭辞を付けて、サードパーティのコードとの競合の可能性を最小限に抑えます。「My Sweet Company」では、「Person」ではなく「MSCPerson」というクラス名を使用する場合があります。

CamelCaseクラス名を使用し、クラスファイルにはという名前を付けCamelCase.class.phpます。ほとんどのクラスファイルには、単一のクラスとクラス固有の例外がありますが、このルールは厳密なものではありません。vimのgf機能用に単一クラスのファイルがあると便利です。


0

個人的には、という名前のクラスをディレクトリ内のというMyClassファイルに保存します。 私のオートロード機能はそのように簡単ですMyClass.class.phpclasses

function __autoload($class) {
    require_once("/classes/".$class.".class.php");
}

classesディレクトリ内には構造はありませんが、私のプロジェクトではこれが問題になることはありません。サブディレクトリが必要な場合、Asa Ayersが提案する方法は非常に実用的で実装が簡単です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.