web-dev-qa-db-ja.com

PHP名前空間の確立された命名規則はありますか?

これまで、PHP名前空間に使用されるさまざまな命名規則を見てきました。 PascalCase\Just\Like\For\Classesを使用する人もいれば、underscored\lower_case\namesを使用する人もいれば、パッケージ名にJava規則を使用する人もいます:com\domain\project\package

質問は非常に単純です-これらの(または他の)規則のいずれかを確立されたと呼ぶことができますか?どうして? Zendのような当局や有名なPHPフレームワークの開発者によって推奨されているものはありますか?

35
Ignas R

A PHP Standards Working Groupは、さまざまなPHPフレームワークとプロジェクトへの貢献者で構成されており、適切な名前空間の使用法について次の提案をしました。

https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-0.md

26
Ben Ramsey

現時点で十分に確立されているものがあるとは言えないと思いますが、PEAR2についてそれを議論しているRFCがあります: http://wiki.php.net/pear/rfc/pear2_naming_standards

私の考えでは、名前空間は変数の形式であるため、それらと同じ規則に従う必要があります。私は一般的に(オブジェクトメンバーではなく)自由変数にlowercase_underscoreを好むので、私の好みにとって最も自然なのはnamespace\ClassNameです。これは、他の言語で最も一般的な規則とも一致します。一方、5.3より前の疑似名前空間についても同じ議論をすることができますが、ここではデファクトスタンダードがCamelCaseを使用しているようです。

5
troelskn

個人的には、クラス名の上部のキャメルケース、クラスの属性とメソッド、下部のキャメルケース、およびアンダースコアを前に付けたクラス属性を書くのが好きです。

他のローカル変数も、アンダースコアプレフィックスなしで下のキャメルケースを書いています。オブジェクトインスタンスは常に上部のキャメルケースなどで記述されます。最善の方法があるとは思いません。コーディング標準に準拠している必要があります。これにより、コードをより速く読み取ることができるという利点が得られ、どのコードラインで何が起こっているかをより速く洞察できるはずです。

1
Ben Fransen