全部 PSR 規範請見:https://psr.phphub.org/php
本 PSR 是關於由文件路徑 自動載入 對應類的相關規範, 本規範是可互操做的,能夠做爲任一自動載入規範的補充,其中包括 PSR-0,此外, 本 PSR 還包括自動載入的類對應的文件存放路徑規範。laravel
爲了不歧義,文檔大量使用了「能願動詞」,對應的解釋以下:git
必須 (MUST)
:絕對,嚴格遵循,請照作,無條件遵照;必定不可 (MUST NOT)
:禁令,嚴令禁止;應該 (SHOULD)
:強烈建議這樣作,可是不強求;不應 (SHOULD NOT)
:強烈不建議這樣作,可是不強求;能夠 (MAY)
和 可選 (OPTIONAL)
:選擇性高一點,在這個文檔內,此詞語使用較少;參見:RFC 2119github
此處的「類」泛指全部的「Class類」、「接口」、「traits 可複用代碼塊」以及其它相似結構。web
一個完整的類名需具備如下結構:spa
\<命名空間>(\<子命名空間>)*\<類名>
完整的類名 必須 要有一個頂級命名空間,被稱爲 "vendor namespace";.net
完整的類名 能夠 有一個或多個子命名空間;code
完整的類名 必須 有一個最終的類名;接口
完整的類名中任意一部分中的下滑線都是沒有特殊含義的;ci
完整的類名 能夠 由任意大小寫字母組成;
當根據完整的類名載入相應的文件
完整的類名中,去掉最前面的命名空間分隔符,前面連續的一個或多個命名空間和子命名空間,做爲「命名空間前綴」,其必須與至少一個「文件基目錄」相對應;
緊接命名空間前綴後的子命名空間 必須 與相應的「文件基目錄」相匹配,其中的命名空間分隔符將做爲目錄分隔符。
末尾的類名 必須 與對應的以 .php
爲後綴的文件同名。
下表展現了符合規範完整類名、命名空間前綴和文件基目錄所對應的文件路徑。
完整類名 | 命名空間前綴 | 文件基目錄 | 文件路徑 |
---|---|---|---|
\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 |
關於本規範的實現,可參閱 相關實例。
注意:實例並 不 屬於規範的一部分,且隨時 會 有所變更。
摘自:https://laravel-china.org/