PHP編碼規範之PSR 4

2021-07-02 08:01:40 字數 1533 閱讀 5801

本 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...