本 psr 是關於由檔案路徑 [自動載入][ 對應類的相關規範, 本規範是可互操作的,可以作為任一自動載入規範的補充,其中包括 psr-0,此外, 本 psr 還包括自動載入的類對應的檔案存放路徑規範。
此處的「類」泛指所有的class
類、介面、traits
可復用**塊以及其它類似結構。
乙個完整的類名需具有以下結構:
\《命名空間》(\《子命名空間》)*\《類名》
i. 完整的類名必須要有乙個頂級命名空間,被稱為 「vendor namespace」;
ii. 完整的類名可以有乙個或多個子命名空間;
iii. 完整的類名必須有乙個最終的類名;
iv. 完整的類名中任意一部分中的下滑線都是沒有特殊含義的;
v. 完整的類名可以由任意大小寫字母組成;
vi. 所有類名都必須是大小寫敏感的。
3.當根據完整的類名載入相應的檔案……
i. 完整的類名中,去掉最前面的命名空間分隔符,前面連續的乙個或多個命名空間和子命名空間,作為「命名空間字首」,其必須與至少乙個「檔案基目錄」相對應;
ii. 緊接命名空間字首後的子命名空間必須與相應的」檔案基目錄「相匹配,其中的命名空間分隔符將作為目錄分隔符。
iii. 末尾的類名必須與對應的以 .php 為字尾的檔案同名。
iv. 自動載入器(autoloader)的實現一定不能丟擲異常、一定不能觸發任一級別的錯誤資訊以及不應該有返回值。
下表展示了符合規範完整類名、命名空間字首和檔案基目錄所對應的檔案路徑。
完整類名
命名空間字首
檔案基目錄
檔案路徑
\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
關於本規範的實現,可參閱 相關例項
注意:例項並不屬於規範的一部分,且隨時會有所變動。
PHP 自動載入規範PSR 4
autoloaderautoloader 1.概述 本 psr 是關於由檔案路徑 自動載入 對應類的相關規範,本規範是可互操作的,可以作為任一自動載入規範的補充,其中包括 psr 0,此外,本 psr 還包括自動載入的類對應的檔案存放路徑規範。2.詳細說明 此處的 類 泛指所有的class類 介面 ...
PHP規範PSR0和PSR4的理解
下文描述了若要使用乙個通用的自動載入器 autoloader 你所需要遵守的規範 參考 以下,列出psr0構建的規範類的幾種形式 這個 psr 描述的是通過檔案路徑 自動載入 類的指南 它作為對 psr 0 的補充 根據這個 指導如何規範存放檔案來自動載入 術語 類 是乙個泛稱 它包含類,介面,tr...
PHP規範PSR0和PSR4的理解
下文描述了若要使用乙個通用的自動載入器 autoloader 你所需要遵守的規範 參考 以下,列出psr0構建的規範類的幾種形式 這個 psr 描述的是通過檔案路徑 自動載入 類的指南 它作為對 psr 0 的補充 根據這個 指導如何規範存放檔案來自動載入 術語 類 是乙個泛稱 它包含類,介面,tr...