[TOC=2]
## 1. 概述
* 此 PSR 描述了從文件 路徑自動加載類的規范。它完全可互操作,除了包括 PSR-0 在內的任何其他自動加載規范外,還可以使用它。此 PSR 還描述了根據規范放置將自動加載的文件的位置。
## 2. 規格
* 術語“class”指的是類,接口,特征和其他類似結構。
* 完全限定的類名具有以下形式:
~~~php
\<NamespaceName>(\<SubNamespaceNames>)*\<ClassName>
~~~
* 完全限定的類名必須具有頂級命名空間名稱,也稱為“供應商命名空間”。
* 完全限定的類名可以具有一個或多個子命名空間名稱。
* 完全限定的類名必須具有終止類名。
* 下劃線在完全限定類名的任何部分都沒有特殊含義。
* 完全限定類名中的字母字符可以是小寫和大寫的任意組合。
* 必須以區分大小寫的方式引用所有類名。
* 加載對應于完全限定類名的文件時...
* 完全限定類名(“名稱空間前綴”)中的一個或多個前導命名空間和子命名空間名稱的連續系列(不包括前導命名空間分符)對應于至少一個“基本目錄”。“名稱空間前綴”之后的連續子命名空間名稱對應于“基本目錄”中的子目錄,其中名稱空間分隔符表示目錄分隔符。子目錄名稱必須與子命名空間名稱的大小寫匹配。
* 終止類名對應于以 .php 。結尾的文件名。文件名必須與終止類名稱的大小寫相匹配。
* Autoloader 實現絕不能拋出異常,不得引發任何級別的錯誤,并且不應返回值。
## 3. 例子
* 下表顯示了給定完全限定的相應文件路徑類名,名稱空間前綴和基目錄。
| FULLY QUALIFIED CLASS NAME | NAMESPACE PREFIX | BASE DIRECTORY | RESULTING FILE PATH |
| --- | --- | --- | --- |
| \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 |
例如符合規范的自動加載器的實現,請參閱示例文件。 絕不能考慮示例實現作為規范的一部分,可以隨時更改。
- 文檔說明
- Java 相關
- 環境配置
- PHP 相關
- 開發規范
- PSR-1: 基本編碼標準
- PSR-2: 編碼風格指南
- PSR-3: 記錄器接口
- PSR-4: 自動加載器
- 部分注解
- 命名空間
- 自動加載
- 環境搭建
- phpstudy
- sublime text3
- Centos6.*
- Centos7.*
- redis 安裝
- 在Linux上安裝NodeJS
- 安裝Crontab UI
- tomcat
- Composer
- 開發優化
- 擴展使用
- Yaconf
- 開發安全
- 經典案例
- 站內信設計
- 微擎相關
- Linux 相關
- 基本常用
- wget
- crontab
- Systemd
- yum
- cat && tac
- kill
- tail
- cat
- vim
- nginx
- 前端相關
- Grid 布局
- Flex 布局
- 雜項
- JS 位運算
- JS 基礎
- Vue
- Axios
- 常用正則
- 命名參考
- sass
- 簡單技巧
- Web Worker
- HTTP
- Content-Type
- 狀態碼
- MySql 相關
- 連接操作
- 用戶相關
- 數據庫表
- 字段操作
- 時間函數
- 文檔解讀
- 命令
- 優化
- 數據庫優化
- 電腦使用
- 系統優化
- 軟件卸載
- 并發優化