web-dev-qa-db-ja.com

PHPクラスファイルの名前は何にすべきですか?

PHPファイルは基本的にクラスにすぎません。

  1. myClass.php
  2. myClass.class.php
  3. myClass.class

違いは何ですか、どちらが良いですか?

38
johnnietheblack

あなたが見るものを超えて違いはありません。 autoloading を使用していて、クラスファイルが存在する特定のディレクトリがない場合は、.classが付いているファイルが役立ちます。それ以外の場合は、完全に任意です。 (以前はClassName.class.phpを使用していました。)

41
chaos

あなたのコーディング標準は何ですか?

クラス名の先頭は大文字にするのが一般的です(例:_class MyClass_)。これを行うと、ファイルに_MyClass.php_という名前が付けられます。また、_MyClass.class.php_も機能します。

_MyClass.class_は、誰かがそのファイルを名前で要求した場合にソースコードを表示できるようにするための悪い考えです。 _.php_拡張機能を使用すると、PHPインタープリター(クラスのみを含むファイルの場合)がファイルを処理した後にのみユーザーに出力が表示されます)空白ページ。

最後に、クラスをロードするために_require_once_を呼び出す手間を省く autoload() を調べます。


更新:PHPコーディング標準 PSR-4 では、セミクラスファイルに正式な名前を付ける方法です。クラスファイルに_.php_拡張子が付いたクラスと同じ名前を付けるという以前のアドバイスはまだ有効ですが、今では、そのクラスファイルを、クラス名前空間; PSR-4では、すべてのクラスがユーザーが定義した名前空間に含まれている必要があります。

これのために何を手に入れますか?無料でオートローディング! Composer を使用している場合、 クラスの最上位ディレクトリを指定 およびComposerがクラスを自動ロードします。これ以上requireステートメントでクラスをロードします。

これを望まない場合は、行う必要はありません。PSR-4は推奨事項であり、要件ではありません。

45
Nate

私はMyClass.phpを好みます-クラスとまったく同じ名前(大文字を含む)。

ただし、既存のプロジェクトで作業している場合は、プロジェクトの命名体系を使用する必要があります。

5
Thomas Owens

既存のプロジェクトまたはプラットフォームで作業しない限り、私はZendのような文書化された一連の規則に傾く傾向があります: http://framework.zend.com/manual/en/coding-standard .naming-conventions.html

さらに、これはPHP Code Snifferなどのツールを使用して、誰もが慣習に固執するようにすることができることを意味します。

どちらにしても、一貫性はゲームの名前です。他の人(数か月後を含む)がコードベースに慣れるのが非常に簡単になります。

1
xentek