官术网_书友最值得收藏!

5.4 PSR-4標準

PSR(PHP Standard Recommendations)是由PHP FIG(Framework Interoperability Group,框架可互用性小組)組織制定的PHP規范,是PHP開發的實踐標準。該項目通過開源框架的作者和其他協作組之間的討論,以最低程度的限制,制定一個統一的編碼規范,避免風格各異的代碼規范阻礙PHP的發展。由于這些作者都在行業內具有一定影響力,所以PSR雖然不是PHP官方的標準,但也得到大多數開發者的認同,越來越多的開發者遵從PSR標準。

FIG組織目前已表決通過了6套標準,如表5-3所示。

表5-3 FIG提出的PSR標準

本節重點講述PSR-4自動加載規范。

PSR-4是關于從文件路徑自動加載對應類的規范,本規范具有可互操作性,可以作為任一自動加載規范的補充,其中包括PSR-0。此外,本規范還描述了如何根據規范來放置自動加載的類對應的文件存放路徑。PSR-4的具體規范如下:

(1)術語“類”包括類、接口、traits可復用代碼塊以及其他類似的結構體。

(2)一個完整的、合格的類名稱具有以下格式:

\<NamespaceName>(\<SubNamespaceNames>)*\<ClassName>

● 完整的、合格的類名稱必須有一個頂級命名空間,即“vendor namespace”。

● 完整的、合格的類名稱可以有一個或多個子命名空間。

● 完整的、合格的類名稱必須有一個最終的類名稱。

● 下畫線在完整的、合格的類名稱的任何位置,都沒有任何特殊含義。

● 完整的、合格的類名稱可以由任意大小寫字母組成。

● 所有類名必須區分大小寫。

(3)根據完整的、合格的類名稱加載相應文件的規則如下:

● 完整的、合格的類名稱,去掉最前面的命名空間分隔符之后,前面連續的一個或多個命名空間和子命名空間,作為命名空間前綴,其必須與至少一個根目錄相對應。

● 命名空間前綴之后的子命名空間對應著一個根目錄中的子目錄,其中的命名空間分隔符代表目錄分隔符。子目錄名稱必須與相應的子命名空間相匹配。

● 最終類名對應著一個以.php為后綴的文件。這個文件名必須與最終類名相同。

● 自動加載器(autoloader)的實現一定不可拋出異常,一定不可觸發任一級別的錯誤信息,并且不應該有返回值。

面試題:PSR-4 標準

題目描述:什么是PSR-4,它與PSR-0有什么區別?

解答:關于PSR-4的知識見前文講解。PSR-0是關于自動加載的第一個規范,已于2014年廢棄使用,現在推薦PSR-4。它們之間的最大區別是PSR-0會將下畫線當作目錄分隔符使用,而PSR-4中下畫線沒有任何特殊含義。詳細文檔地址如表5-4所示。

表5-4 PSR標準文檔地址

主站蜘蛛池模板: 新龙县| 崇文区| 扎兰屯市| 稻城县| 镇雄县| 芒康县| 田林县| 罗田县| 江安县| 遂川县| 通州市| 图们市| 仪征市| 苗栗县| 内江市| 彰武县| 武乡县| 贵港市| 沽源县| 陆丰市| 乐亭县| 洛宁县| 昆明市| 虹口区| 南雄市| 布拖县| 富源县| 巴林左旗| 叙永县| 应用必备| 湘潭市| 洱源县| 临猗县| 江都市| 东港市| 龙井市| 夏津县| 临汾市| 景德镇市| 射阳县| 望都县|