このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
psr:psr1 [2020/04/23 09:55] y2sunlight |
psr:psr1 [2020/09/01 11:51] tanaka [PSR-1: Basic Coding Standard] |
||
---|---|---|---|
行 1: | 行 1: | ||
- | > TODO: 編集中 | ||
- | |||
- | ----- | ||
- | |||
====== PSR-1: Basic Coding Standard ====== | ====== PSR-1: Basic Coding Standard ====== | ||
--- // | --- // | ||
- | 本章は、若干の補足を加筆してはいるものの単に[[https:// | + | 本章は、若干の補足を加筆してはいるものの単に[[https:// |
+ | |||
+ | 関連記事 | ||
- | ==== 目次 ==== | + | |
- | | + | |
* PSR-1: Basic Coding Standard - 基本コーディング規約 | * PSR-1: Basic Coding Standard - 基本コーディング規約 | ||
* [[psr: | * [[psr: | ||
行 16: | 行 13: | ||
* [[psr: | * [[psr: | ||
* [[psr: | * [[psr: | ||
+ | * [[psr: | ||
+ | * [[psr: | ||
+ | * [[psr: | ||
+ | * [[psr: | ||
+ | * [[psr: | ||
+ | * [[psr: | ||
+ | * [[psr: | ||
+ | * [[psr: | ||
+ | * [[psr: | ||
+ | * [[psr: | ||
----- | ----- | ||
行 25: | 行 32: | ||
このセクションの規約は、共有されるPHPコードにおいて、高度な技術的相互運用性を保証するために必要な標準コーディング要素と見なす必要があるもので構成されています。 | このセクションの規約は、共有されるPHPコードにおいて、高度な技術的相互運用性を保証するために必要な標準コーディング要素と見なす必要があるもので構成されています。 | ||
- | このドキュメントのキーワード '' | + | このドキュメントのキーワード '' |
> **RFC 2119の説明** | > **RFC 2119の説明** | ||
> '' | > '' | ||
> '' | > '' | ||
- | > '' | + | > '' |
- | > '' | + | > '' |
> '' | > '' | ||
行 72: | 行 79: | ||
* エラーまたは例外の発行 | * エラーまたは例外の発行 | ||
* ローバル変数または静的変数の変更 | * ローバル変数または静的変数の変更 | ||
- | * ファイルの読み取りまたは書き込み | + | * ファイルの読み取りまたは書き込み など |
- | * その他 | + | |
以下は、宣言と副作用の両方を含むファイルの例です。つまり、避けるべき例です: | 以下は、宣言と副作用の両方を含むファイルの例です。つまり、避けるべき例です: | ||
行 117: | 行 123: | ||
===== 3. 名前空間とクラス名 ====== | ===== 3. 名前空間とクラス名 ====== | ||
- | > TODO: | + | 名前空間とクラスは、オートローディングPSR ([[https:// |
+ | |||
+ | これは、各クラスがそれ自体でファイル内にあり、少なくとも1つのレベルのネームスペース(トップレベルはベンダー名です)にあることを意味します。 | ||
+ | |||
+ | クラス名は**StudlyCaps**で宣言する必要があります( '' | ||
+ | |||
+ | > | ||
+ | |||
+ | PHP 5.3以降用に記述されたコードは、正式な名前空間を使用する必要があります( '' | ||
+ | |||
+ | 例えば: | ||
+ | <code php> | ||
+ | <?php | ||
+ | // PHP 5.3以降 | ||
+ | namespace Vendor\Model; | ||
+ | |||
+ | class Foo | ||
+ | { | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | 5.2.x以前向けに記述されたコードは、クラス名の前にプレフィックス( **Vendor_** など)の疑似名前空間規則を使用する必要があります( '' | ||
+ | |||
+ | <code php> | ||
+ | <?php | ||
+ | // PHP 5.2.xおよびそれ以前 | ||
+ | class Vendor_Model_Foo | ||
+ | { | ||
+ | } | ||
+ | </ | ||
\\ | \\ | ||
行 123: | 行 158: | ||
===== 4. クラス定数、プロパティ、メソッド ====== | ===== 4. クラス定数、プロパティ、メソッド ====== | ||
- | > TODO: | + | 「クラス」という用語は、すべてのクラス(class)、インターフェース(interface)、およびトレイト(trait)を指します。 |
+ | |||
+ | ==== 4.1 定数 ==== | ||
+ | クラス定数は、アンダースコア区切りで大文字で宣言する必要があります( '' | ||
+ | |||
+ | <code php> | ||
+ | namespace Vendor\Model; | ||
+ | |||
+ | class Foo | ||
+ | { | ||
+ | const VERSION = ' | ||
+ | const DATE_APPROVED = ' | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ==== 4.2 プロパティ ==== | ||
+ | このガイドでは、プロパティ名について、**StudlyCaps**、**camelCase**、または **under_score** の使用に関する推奨を意図的に避けています。 | ||
+ | |||
+ | > | ||
+ | > | ||
+ | > | ||
+ | |||
+ | どのような命名規則が使用されていても、合理的なスコープで一貫して適用されるべきです。そのスコープとは、ベンダーレベル、パッケージレベル、クラスレベル、またはメソッドレベルなどでしょう( '' | ||
+ | |||
+ | ==== 4.3 メソッド ==== | ||
+ | メソッド名は **camelCase** で宣言する必要があります( '' | ||
\\ | \\ | ||