如前所述,PHP 社區已經有許多開發者開發了大量的代碼。這意味著一個類庫的 PHP 代碼可能使用了另外一個類庫中相同的類名。如果他們使用同一個命名空間,那將會產生沖突導致異常。
*命名空間*?解決了這個問題。如 PHP 手冊里所描述,命名空間好比操作系統中的目錄,兩個同名的文件可以共存在不同的目錄下。同理兩個同名的 PHP 類可以在不同的 PHP 命名空間下共存,就這么簡單。
因此把你的代碼放在你的命名空間下就非常重要,避免其他開發者擔心與第三方類庫沖突。
[PSR-4](http://www.php-fig.org/psr/psr-4/)?提供了一種命名空間的推薦使用方式,它提供一個標準的文件、類和命名空間的使用慣例,進而讓代碼做到隨插即用。
2014 年 10 月,PHP-FIG 廢棄了上一個自動加載標準:?[PSR-0](http://www.php-fig.org/psr/psr-0/),而采用新的自動加載標準?[PSR-4](http://www.php-fig.org/psr/psr-4/)。但 PSR-4 要求 PHP 5.3 以上的版本,而許多項目都還是使用 PHP 5.2,所以目前兩者都能使用。
如果你在新應用或擴展包中使用自動加載標準,應優先考慮使用 PSR-4。
* [閱讀命名空間](http://php.net/language.namespaces)
* [閱讀 PSR-0](http://www.php-fig.org/psr/psr-0/)
* [閱讀 PSR-4](http://www.php-fig.org/psr/psr-4/)
- 歡迎
- 入門指南
- 使用當前穩定版本
- 內置的WEB服務器
- Mac安裝
- Windows安裝
- 代碼風格指南
- 語言亮點
- 編程范式
- 命名空間
- PHP標準庫
- 命令行接口
- Xdebug
- 依賴管理
- Composer 與 Packagist
- PEAR
- 開發實踐
- 基礎知識
- 日期和時間
- 設計模式
- 使用UTF8編碼
- 依賴注入
- 基本概念
- 復雜的問題
- 容器
- 延伸閱讀
- 數據庫
- MYSQL 擴展
- PDO 擴展
- 數據庫交互
- 數據庫抽象層
- 使用模板
- 好處
- 原生PHP模板
- 編譯模板
- 延伸閱讀
- 錯誤與異常
- 錯誤
- 異常
- 安全
- Web應用程序安全
- 密碼哈希
- 數據過濾
- 配置文件
- 注冊全局變量
- 錯誤報告
- 測試
- 測試驅動開發
- 行為驅動開發
- 其他測試工具
- 服務器與部署
- Platform as a Service (PaaS)
- 虛擬或專用服務器
- 共享服務器
- 構建及部署應用
- 虛擬化
- Vagrant
- Docker
- 緩存
- Opcode緩存
- 對象緩存
- 文檔撰寫
- 資源
- 社區
- Credits