ホームページ >バックエンド開発 >PHPチュートリアル >PHP-FIG PSR-1 # 基本的なコーディング標準

PHP-FIG PSR-1 # 基本的なコーディング標準

WBOY
WBOYオリジナル
2016-06-23 13:38:501097ブラウズ

この標準には、PHP 共有コードの相互運用性を確保するために使用される標準コーディング要素が含まれています。

キーワード「しなければならない」、「してはならない」、「必須」、「するものとする」、「してはならない」、「すべきである」、「すべきではない」、「推奨」は推奨されます、「してもよい」、「任意」このドキュメント内の「」は、RFC 2119 に記載されているように解釈されます。

概要
    ドキュメントでは、< および < タグを使用する必要があります。
  1. ファイル内の PHP コードは、BOM ヘッダーのない UTF-8 エンコーディングを使用する必要があります。
  2. ファイルは「シンボル」 (クラス、関数、定数など) を宣言でき、また、いくつかの副作用 (出力の生成、ini 設定の変更など) を実行することもできます。 ただし、これら 2 種類のものを同じファイル内に含めるべきではありません。
  3. 名前空間とクラスは、「自動ロード」PSR: [PSR-0、PSR-4] に従う必要があります。
  4. クラス名は StudlyCaps (キャメルケースの最初の文字) を使用して宣言する必要があります。
  5. クラス定数には、アンダースコアで区切られた大文字を使用する必要があります。
  6. メソッド名はキャメルケースで宣言する必要があります。
  7. PHP タグ

PHP コードでは、長いタグ < を使用する必要があります

短いタグ

を使用することはできません。 BOM ヘッダーのない UTF-8 エンコーディングを使用します

限界効果

ファイルは、限界効果を引き起こさないシンボル (クラス、関数、定数など) を宣言するか、限界効果を生み出すコードを実行する必要があります。これら 2 つの状況を 1 つのファイルに含めることはできません。

「Marginal Effect」は、クラス、関数、定数の宣言とは独立してロジックを実行します。

「限界的な影響」には、出力の生成、明示的な require または include、外部サービスへの接続、ini 構成の変更、エラーまたは例外の発行、グローバル変数または静的変数の変更、ファイルの読み取りと書き込みなどが含まれますが、これらに限定されません。以下は、シンボルの宣言と限界効果の生成の例です。これは避けるべき状況です:

<?php// 边际效应: 修改 ini 设置ini_set('error_reporting', E_ALL);// 边际效应: 加载文件include "file.php";// 边际效应: 生成输出echo "<html>\n";// 声明function foo() {    // function body}

次の例には宣言のみが含まれており、限界効果はありません:

<?php// declarationfunction foo() {    // function body}// 条件式声明 不是边际效应if (! function_exists('bar')) {    function bar() {        // function body    }}
名前空間名とクラス名。

名前空間名とクラス名は次のようにする必要があります。PSR の「自動読み込み」: [PSR-0、PSR-4] に従ってください。

これは、各ファイルには 1 つのクラスのみを含めることができ、少なくとも 1 つのレベルの名前空間が存在することを意味します。レベルベンダー名。

クラス名は StudlyCaps (最初の文字はキャメルケース) 宣言を使用する必要があります。

PHP 5.3 以降のバージョンのコードでは、正式な名前空間を使用する必要があります (PHP は 5.3 より前の名前空間をサポートしません)。

例:

クラスの定数、プロパティ、およびメソッド

ここでの「クラス」には、クラス、インターフェイス、特性が含まれます。

4.1. 定数

クラス定数は、アンダースコアで区切って大文字で宣言する必要があります。

<?php// PHP 5.3 and later:namespace Vendor\Model;class Foo {}Code written for 5.2.x and before SHOULD use the pseudo-namespacing convention of Vendor_prefixes on class names.<?php// PHP 5.2.x and earlier:class Vendor_Model_Foo{}

Attributes

このガイドでは、StudlyCaps、camelCase、$under_score のいずれかの属性命名スタイルを優先することを意図的に避けています。

どの命名スタイルが使用されても、合理的な範囲内で一貫性がある必要があります。 スコープは、ベンダー レベル、パッケージ レベル、クラス レベル、またはメソッド レベルのいずれかになります。

メソッド

メソッド名にはcamelCase()を使用する必要があります。

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