Zend Framework 2 は、プライベート メンバーやクラスのメソッドの前にアンダースコアを配置し続けますか? 例えば:
class blah {
private $_name;
private function _doSomethingToName()
{
}
}
ZF2 の dev リリースにはまだ残っているようです。
Zend Framework 2 は、プライベート メンバーやクラスのメソッドの前にアンダースコアを配置し続けますか? 例えば:
class blah {
private $_name;
private function _doSomethingToName()
{
}
}
ZF2 の dev リリースにはまだ残っているようです。
おそらくそうです、世論調査によると:
現在 381 件の回答があります。
- 57% が「はい」に投票 (アンダースコアを削除するため)
- 38% が「いいえ」に投票 (アンダースコアを保持するため)
- 4% 投票「意見なし」
zf2コーディング標準から
関数とメソッド
関数名には英数字のみを含める必要があります。アンダースコアは使用できません。関数名には数字を使用できますが、お勧めできません。...「private」または「protected」修飾子で宣言されたオブジェクトのメソッドの場合、メソッド名の最初の文字はアンダースコアである場合があります。これは、メソッド名にアンダースコアを使用する唯一の許容可能なアプリケーションであり、お勧めできません (パブリックな可視性へのリファクタリングがより困難になるため)。「public」と宣言されたメソッドにはアンダースコアを含めないでください。
http://framework.zend.com/wiki/display/ZFDEV2/Coding+Standards
はい、そしてなぜ彼らはすべきではないのですか?そうするのは慣例です。
私は最近、この質問について疑問に思っており、ZendFramework-2.1.4 ソース ツリー全体を検索して決定的な回答を得ました。アンダースコア規則は、変数には使用されなくなったようです。プロジェクト全体で、単一のアンダースコアで始まるプライベート変数またはプロテクト変数の宣言は 1 つもありません。次の 3 つのファイルには、2 つのアンダースコアで始まる少数の変数がありますが、それだけです。
\ZendFramework-2.1.4\library\Zend\View\Renderer\PhpRenderer.php \ZendFramework-2.1.4\library\Zend\View\Renderer\ConsoleRenderer.php \ZendFramework-2.1.4\library\Zend\Stdlib\AbstractOptions .php
これらのファイルの少なくとも 1 つに、次のコメントが含まれています。
注: このクラスのすべてのプライベート変数には、"__" というプレフィックスが付きます。これは * それらを内部実装の一部としてマークし、レンダラーに注入された * 変数との競合を防ぐためです。
メソッドに関しては、「private function _」を使用する 3 つのファイルと、「protected function _」を使用してメソッドを宣言する 89 個のファイルを見つけることができました。また、「private static function _」を使用したファイルが 3 件、「protected static function _」を使用したファイルが 7 件ありました。これらは、プロジェクト内のメソッド宣言の総数のごく一部です。
この規約は、Zend Framework 2 内では死んでいるか、死んでいるように見えます。
編集: ZF2 codign 標準のこれらの 2 つのセクションは、これを明確に述べているようです。
http://framework.zend.com/wiki/display/ZFDEV2/Coding+Standards#CodingStandards-Variables http://framework.zend.com/wiki/display/ZFDEV2/Coding+Standards#CodingStandards-FunctionsandMethods
変数
変数名には英数字のみを含める必要があります。アンダースコアは使用できません。変数名に数値を使用することは許可されていますが、ほとんどの場合はお勧めできません。
プライベートまたは保護された可視性で宣言された変数の場合、変数名の最初の文字は単一のアンダースコアである場合があります。これは、変数名にアンダースコアを使用する唯一の許容可能なアプリケーションであり、お勧めできません (パブリックな可視性へのリファクタリングがより困難になるため)。
関数とメソッド
関数名には英数字のみを含める必要があります。アンダースコアは使用できません。関数名に数字を使用することは許可されていますが、お勧めできません。
関数名は常に小文字で始めなければなりません。関数名が複数の単語で構成される場合、新しい各単語の最初の文字は大文字にする必要があります。これは一般に「camelCase」形式と呼ばれます。
これは、他のオブジェクト指向言語の規則でもあります。
次の 2 つのコード規則ガイドラインを確認してください。
しかし、これはすべてチーム規約であるべきであり、Zend の場合はおそらくそうです。これらのコード規則は、コードを記述する際の明確化と一貫性のために使用する必要があると思います。私にとって、プライベート メンバーにアンダースコア プレフィックスを使用する Zend は、特にクラスにあまり詳しくない場合に、時間を大幅に節約できます。