autoloaderautoloader
1. 概述
本 psr 是關於由檔案路徑 [自動載入][ 對應類的相關規範, 本規範是可互操作的,可以作為任一自動載入規範的補充,其中包括 psr-0,此外, 本 psr 還包括自動載入的類對應的檔案存放路徑規範。
2. 詳細說明
此處的「類」泛指所有的class類、介面、traits可復用**塊以及其它類似結構。
乙個完整的類名需具有以下結構:
\《命名空間》(\《子命名空間》)*\《類名》
完整的類名必須要有乙個頂級命名空間,被稱為 「vendor namespace」;
完整的類名可以有乙個或多個子命名空間;
完整的類名必須有乙個最終的類名;
完整的類名中任意一部分中的下滑線都是沒有特殊含義的;
完整的類名可以由任意大小寫字母組成;
所有類名都必須是大小寫敏感的。
當根據完整的類名載入相應的檔案……
完整的類名中,去掉最前面的命名空間分隔符,前面連續的乙個或多個命名空間和子命名空間,作為「命名空間字首」,其必須與至少乙個「檔案基目錄」相對應;
緊接命名空間字首後的子命名空間必須與相應的」檔案基目錄「相匹配,其中的命名空間分隔符將作為目錄分隔符。
末尾的類名必須與對應的以 .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
關於本規範的實現,可參閱 github
注意:例項並不屬於規範的一部分,且隨時會有所變動。
PSR 4 自動載入
翻譯自 這個 psr 描述的是通過檔案路徑自動載入類的指南,它作為對 psr 0 的補充 根據這個來規範存放檔案以實現自動載入 術語class包含類class,介面inte ce,特性traits以及其他一些類似的結構 乙個完整的限定類名應該按照如下範例 當通過乙個完整的限定類名引入乙個檔案時 自動...
PSR 4 自動載入
autoloader 本 psr 是關於由檔案路徑 自動載入 對應類的相關規範,本規範是可互操作的,可以作為任一自動載入規範的補充,其中包括 psr 0,此外,本 psr 還包括自動載入的類對應的檔案存放路徑規範。2.詳細說明 此處的 類 泛指所有的class類 介面 traits可復用 塊以及其它...
PSR4自動載入
psr描述了類名和檔案路徑自動載入。1 class 指的是 class inte ce trait 以及其他類似結構體 2 乙個合格的類名應該是下面格式 必須有乙個頂級命名空間 可以包括一級或多級子命名空間的名字 必須包括乙個最終的類名 下劃線在這裡沒有任何特殊含義 類名大小寫敏感 3 例子 完整合...