— y2sunlight 2020-04-28
本章は、若干の補足を加筆してはいるものの単にPSRのサイトを日本語に翻訳したものに過ぎません。英語が堪能な方は原文をご参照下さい。翻訳に当たっては、基本的に機械翻訳を使い、理解できない部分は独断で意訳しております。拙い訳では御座いますが恥を忍んで投稿しておりますので、ご指摘など御座いましたらコメントを頂ければ幸いです。
関連記事
— 原文より翻訳 PSR-4: Autoloader 2020-04-28 現在
このドキュメントのキーワード MUST , MUST NOT , REQUIRED , SHALL , SHALL NOT , SHOULD , SHOULD NOT , RECOMMENDED , MAY 及び OPTIONAL は、 RFC 2119で説明されているように解釈して下さい。
RFC 2119の説明
MUST,REQUIRED,SHALL— 絶対必要
MUST NOT,SHALL NOT— 絶対禁止
SHOULD,RECOMMENDED— 推奨(但し、無視できる特定の正当な理由が存在するかもしれない)
SHOULD NOT— 推奨できない(但し、許可できる特定の正当な理由が存在するかもしれない)
MAY,OPTIONAL— オプション
このPSRは、ファイルパスからクラスを自動ロードするための仕様を記述しています。それは完全な相互運用性があり(PSR-0を含む)他のオートローディング仕様に加えて使用できます。このPSRでは、仕様に従ってオートロードされるファイルを配置する場所についても説明します。
1. クラスという用語は、クラス、インターフェース、トレイト、および他の同様の構造を指します。
2. 完全修飾クラス名の形式は次のとおりです。
\<名前空間名>(\<サブ名前空間名>)*\<クラス名>
MUST)。MAY)。MUST)。MAY)。MUST)。3. 完全修飾クラス名に対応するファイルをロードするとき…
MUST)。MUST)。
4. オートローダーの実装は例外をスローしてはならず(MUST NOT)、あらゆるレベルのエラーを発生させてはならず(MUST NOT)、そして値を返すべきではありません(SHOULD NOT)。
以下の表は、与えられた(完全修飾クラス名,名前空間プレフィックス,ベースディレクトリ)に対応するファイルパスの結果を示しています。
| 完全修飾クラス名 | 名前空間プレフィックス | ベースディレクトリ | ファイルパス |
|---|---|---|---|
| \Acme\Log\Writer\File_Writer | Acme\Log\Writer | ./acme-log-writer/lib/ | ./acme-log-writer/lib/File_Writer.php |
| \Aura\Web\Response\Status | Aura\Web | /path/to/aura-web/src/ | /path/to/aura-web/src/Response/Status.php |
| \Symfony\Core\Request | Symfony\Core | ./vendor/Symfony/Core/ | ./vendor/Symfony/Core/Request.php |
| \Zend\Acl | Zend | /usr/includes/Zend/ | /usr/includes/Zend/Acl.php |
仕様に準拠したオートローダーの実装例については、サンプルファイルをご覧ください。この実装例は仕様の一部と見なしてはいけません(MUST NOT)。この例はいつでも変更できます。