— 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
)。この例はいつでも変更できます。