私のphpコーディング標準

WBOY
WBOYオリジナル
2016-06-20 12:47:52811ブラウズ

独自のコーディング標準を開発する必要があるのはなぜですか?

私たちがコードを書くとき、優れたコーディング標準は私たちに多くの予期せぬ効果をもたらす可能性があります。少なくとも次のようなメリットがあります:
1. コーディング効率が向上します。きちんと統一されたコードなので、コピー&ペーストが簡単です。
2. コードの可読性を向上させます。
3. 私たちのプロフェッショナリズムを示します。他の人は私たちのコードを見て、コード作成プロセス全体がきちんとしていて均一であることに気づき、すぐに感銘を受けました。
4. チームのコラボレーションを促進します。全員が同じ規格を使用することで、さまざまな書き方がなくなり、統一したコーディネートが可能になります!

コーディング仕様には、コード仕様とコメント仕様という 2 つの主要なブロックが含まれます

実際、私たちが作成する PHP スクリプトは、コードの記述とコメントのコーディングという 2 つの主要なブロックで構成されています。コードです!この点については、フレームワークが異なれば、さらには企業によっても見解が異なります。これは、私自身の執筆基準を要約したものにすぎません。他の友達にインスピレーションを与えることができれば幸いです

1. コード作成基準

フォルダーの名前:
同じフォルダーには小文字を使用します。たとえば、コントローラーのフォルダーを保存する場合は、コントローラー

という名前を付けます。 ファイルの名前:
クラス ファイルの場合、ファイルの名前は次のようにします。類似した名前で一貫性を持たせて統一してください。大きなこぶを使用します。たとえば、Session.class.php、対応するクラス名はSession、
通常のツールスクリプトの場合は、common.phpなどの小さなキャメルケースを使用します

の命名クラス名:
クラス名は同じ大きなキャメルケースを使用します。Cookie クラス

メソッド名の命名:
は同じ小さなキャメルケースを使用します。通常は次を使用します。動詞 + ランキングの形式で、sendMessage などのメソッドの機能を説明し、テキスト メッセージを送信します。
オブジェクト指向では、同じルールに従いますが、いくつかの違いがあります:
public getUserName()
protected _getTotalAmount()
private _setBlanceAmount()

命名変数の規則:
変数に関して、さらにいくつかの点を述べる必要があります:
1. オブジェクト指向構文でも非オブジェクト指向構文でも、変数は一律に次のような小さいキャメルケースを使用します。 $workyears。
ただし、オブジェクト指向では異なります。 public、protected、private、protected、または private 属性の場合、

の場合、先頭に
public $startPosition = 1;protected $_salaryAmount =1000; private $_sex = 'formale';
_

が追加されます。これは定数です。大文字を使用し、それらを区切るにはアンダースコアを使用します。

define('CURRENT_SCRIPT', 'index.php');const TRANSACTION_TYPE = 'income';

3. グローバル変数の場合は、キャメルケースを使用し、先頭に _ を付け、すべての単語の最初の文字を大文字にします。変数のスコープを知ることは非常に重要であるため、ローカル変数とグローバル変数は明確に分離する必要があります。

$_System_Config;$_Root_Path;

インデント
エンコードのインデントは一律タブインデントを使用します!なぜインデントにスペースを使用しないのかと疑問に思う人もいるかもしれません。
理由は非常に簡単です。ほとんどのエディターはタブ文字と同じ数のスペースをサポートしており、スペースを使用するときに調整する必要はありません。

演算記号
すべての二項演算記号の前後にはスペースが必要です
$name = 'zero';
$age > 18 ? : 'children';

共通プロセス ステートメントの計画
すべてのプロセス ステートメントの中括弧が別の行を占めることに同意します。理由: より複雑なビジネス ロジックに遭遇すると、中括弧が大量にネストされるため、対応する中括弧が混乱してしまいます。
1. 分岐ステートメント

if($age >= 18 && $age <= 30) {    echo 'young man';}else if($age > 30 && $age <= 60){    echo 'middle aged';}else{    echo 'old man';}//下面这段代码高手我们一个问题,在if语句中,即使在可以不要花括号的情况下,花括号也是要写上的if($age > 60){    echo 'I am very old';}
switch($status){    case 'forbiden':        echo 'login forbidden';        break;           case 'normal':        echo 'login in';        break;            default:        echo 'status is wrong' :        break;}

2. ループステートメント

while($condition){    statesments......;}
foreach($arrayList as $arrayKey => $arrayItem){    states......;}
2. コメント記述仕様
do{    statements......;    }while($condition)
for($start; condition; changenumber){    statements......;}
良いコードにはコメントは必要ないと多くの人が言いますが、実際、これは非常にナンセンスな発言だと個人的には思います (おそらく彼は正しいでしょう。チーム全体で彼が 1 人でない限り、彼は他の人のコードを見ずにすべてを実行します)。コメント)コード)。

私の個人的な意見は、より多くのコメントを書くことは、チーム内の他の人々にとっても、自分自身にとっても非常に友好的であるということです。

個人的な経験によれば、コメントには少なくとも次の機能があります:

1. 結局のところ、コードよりもコメントの方が読みやすいです。

2. 独自のコード レイアウトを計画するのに役立ちます。なぜこんなことを言うかというと、これはコードのコメントの種類に関係するからです。 「コードのレイアウトに役立つ」この種のことは少しわかりにくいようですが、それを説明するには、実際の例が必要です。

3. アノテーションの仕様は PHPDocumentor の要件に準拠しているため、このツールを使用して、取扱説明書に相当するコードの全体的な説明を生成することもできます。 g


コードコメントの種類

1. ブロックコメント ブロックコメントは主に 3 つの場所で使用されます。 PHP スクリプトや大きな機能モジュールの記述が 1 行で書ききれない場合は、ブロック コメント
にも記述する必要があります。 2. 行コメント
行コメント、個人的にはブロック コメントで動作すると思います!一般に、大規模な機能モジュールの特定の詳細を説明するために使用されます。

実際のケース
ここでは phpdocumentor 構文の具体的な使用法については詳しく説明しませんが、公式 Web サイトではこれ以上明確に説明できません

上記の例から、コードの全体的なレイアウトを確認できますが、実際にはゆっくりと検討する必要があります

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。