PHP PSR-4基本コード仕様(中国語版)

1915 ワード

原文転送扉:PizzaLiu
Autoloader
キーワード「必須」(「MUST」)、「絶対不可/絶対不可」(「MUST NOT」)、「必要」(「REQUIRD」)、「将」(「SHALL」)、「できない」(「SHALL NOT」)、「すべき」(「SHOULD」)、「いけない」(「SHOULD NOT」)、「推薦」(「RECOMMENDED」)、「できる」(「MAY」)および「オプション」(「OPTIONAL」)の詳細は「RFC 21」を参照http://tools.ietf.org/html/rfc2119] .
1.概要
本PSRは、ファイルパスによる対応クラスの自動ロードに関する仕様であり、本仕様は相互運用可能であり、いずれかの自動ロード仕様の補足とすることができ、その中にはPSR-0が含まれている.また、本PSRは自動ロードされたクラスに対応するファイル格納パス仕様も含む.
2.詳細
  • ここでの「クラス」は、一般に、すべてのclassクラス、インタフェース、traits多重化可能なコードブロック、および他の類似構造を指す.
  • 完全なクラス名には、
    \(\)*\
    
    という構造が必要です.
  • 完全なクラス名には、「vendor namespace」と呼ばれるトップクラスのネーミングスペースが必要です.
  • 完全なクラス名には、1つ以上のサブネーミング空間があり得る.
  • 完全なクラス名には最終的なクラス名が必要です.
  • 完全なクラス名のいずれかの部分の下落線には特別な意味はありません.
  • 完全なクラス名は任意の大文字と小文字から構成することができる.
  • すべてのクラス名は、大文字と小文字が敏感でなければなりません.

  • 完全なクラス名に従って対応するファイルをロードすると......
  • 完全なクラス名のうち、最も前のネーミングスペース区切り記号を削除し、前に連続する1つ以上のネーミングスペースとサブネーミングスペースは、「ネーミングスペース接頭辞」として、少なくとも1つの「ファイルベースディレクトリ」に対応する必要があります.
  • ネーミングスペースプレフィックスに続くサブネーミングスペースは、対応する「ファイルベースディレクトリ」と一致する必要があります.ネーミングスペースセパレータはディレクトリセパレータとして使用されます.
  • の末尾のクラス名は、対応する.phpを接尾辞とするファイルと同名でなければならない.
  • 自動ローダ(autoloader)の実装では、例外を投げ出すことができず、いずれかのレベルのエラー情報をトリガすることができず、戻り値があるべきではない.

  • 3.例
    次の表に、スペシフィケーションの完全なクラス名、ネーミングスペースの接頭辞、およびファイルベースディレクトリに対応するファイルパスを示します.
    完全なクラス名
    名前空間接頭辞
    ファイルベースディレクトリ
    ファイルのパス
    \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
    この仕様の実装については、関連するインスタンスを参照してください.インスタンスは仕様の一部ではなく、随時変更されます.