Zend Framework 2はプライベートを強調しています
-
04-10-2019 - |
質問
Zend Framework 2は、プライベートメンバーとクラスの方法の前にアンダースコアを配置し続けますか?例えば:
class blah {
private $_name;
private function _doSomethingToName()
{
}
}
ZF2の開発リリースにはまだそこにあることがわかります。
解決
おそらく はい、抑制します 世論調査:
現在、381の回答があります。
- 57%の投票「はい」(アンダースコアを削除するため)
- 38%の投票「いいえ」(アンダースコアを保持するため)
- 4%の投票「意見なし」
他のヒント
ZF2コーディング標準から
関数と方法
関数名には英数字のみを含める必要があります。アンダースコアは許可されていません。数字は機能名で許可されていますが、落胆しています。 ...「プライベート」または「保護された」修飾子で宣言されたオブジェクトのメソッドの場合、メソッド名の最初の文字はアンダースコアである可能性があります。これは、メソッド名のアンダースコアの唯一の許容可能なアプリケーションであり、推奨されています(公共の可視性へのリファクトをより困難にするため)。 「パブリック」と宣言された方法には、アンダースコアが含まれてはなりません。
http://framework.zend.com/wiki/display/zfdev2/coding+standards
はい、そしてなぜ彼らはそうすべきではないのですか?そうすることは慣習です。
これは、他のオブジェクト指向の言語でもコンベンションです。
これら2つのコード条約ガイドラインをご覧ください。
しかし、これはすべてチームのコンベンションである必要があります。これは、おそらくZendにとってのことです。これらのコード規則は、コードを書くときに明確化と一貫性に使用する必要があると思います。私にとって、プライベートメンバー向けのアンダースコアプレフィックスのZendの使用は、特にクラスにあまり慣れていないときは、素晴らしい時間の節約です。
私は最近、この質問について疑問に思っていましたが、ZendFramework-2.1.4ソースツリー全体を検索して、決定的な答えを得ました。アンダースコア条約は、変数に使用されなくなったようです。プロジェクト全体に、単一のアンダースコアから始まるプライベートまたは保護された変数宣言さえもありません。次の3つのファイルには、2つのアンダースコアから始まる少数の変数がありますが、それはそれです。
zendframework-2.1.4 library zend view renderer phprenderer.php zendframework-2.1.4 library zend view renderer consolerender.php zendframework-2.1.4 briberic .php
これらのファイルの少なくとも1つには、次のコメントが含まれています。
注:このクラスのすべてのプライベート変数には、「__」が付いています。これは、それらを内部実装の一部としてマークするため、レンダラーに注入された変数との競合 *を防ぐことです。
メソッドに関しては、「private function _」を使用する3つのファイルと、「保護された関数_」を使用してメソッドを宣言する3つのファイルを見つけることができました。また、「private static function _」を使用して3つのファイルと、「保護された静的関数_」を使用して7つのファイルがありました。これらは、プロジェクトのメソッド宣言の総数の非常に少数です。
この慣習は、Zend Framework 2で死んでいるか死にかけているように思われます。
編集:ZF2 Codign Standardsのこれら2つのセクションは、これを明確に述べているようです。
http://framework.zend.com/wiki/display/zfdev2/coding+standards#codingstandards-variables http://framework.zend.com/wiki/display/zfdev2/coding+standards#codingstandards-functionsandmethods
変数
変数名には英数字のみを含める必要があります。アンダースコアは許可されていません。数値は変数名で許可されていますが、ほとんどの場合は落胆します。
プライベートまたは保護された可視性で宣言された変数の場合、変数名の最初の文字は単一のアンダースコアである可能性があります。これは、変数名でアンダースコアの唯一の許容可能なアプリケーションであり、推奨されています(公共の可視性へのリファクトをより困難にするため)。
関数と方法
関数名には英数字のみを含める必要があります。アンダースコアは許可されていません。数字は機能名で許可されていますが、落胆しています。
関数名は常に小文字から始める必要があります。関数名が複数の単語で構成されている場合、それぞれの新しい単語の最初の文字を大文字にする必要があります。これは一般に「キャメルケース」フォーマットと呼ばれます。