命名空間與自動載入機制

2022-03-12 16:54:21 字數 529 閱讀 8960

include 和 require 是php中引入檔案的兩個基本方法。在小規模開發中直接使用 include 和 require 沒喲什麼不妥,但在大型專案中會造成大量的 include 和 require 堆積。

這樣的**既不優雅,執行效率也很低,而且維護起來也相當困難。

為了解決這個問題,部分框架會給出乙個引入檔案的配置清單,在物件初始化的時候把需要的檔案引入。但這只是讓**變得更簡潔了一些,引入的效果仍然是差強人意。php5 之後,隨著

php 物件導向支援的完善,__autoload函式才真正使得自動載入成為可能。

注:命名空間是為了各自的元件不至於混淆錯亂,本質上和自動載入沒有關係;

自動載入規範來自psr,具體自己實現;

命名空間與系統目錄有一定的對應關係,參考psr-4;

魔術方法__autoload()和spl_autoload_register()的使用;

最終都是include()/require()的組合;

php命名空間namespace自動載入

php的命名空間僅僅提供了乙個邏輯上的類的隔離空間,我們在引用類時,仍要自己實現自動載入。思路就是使用乙個未引入的類時,php自動觸發spl autoload register這個方法,然後就會根據命名空間的結構解析為檔案路徑,引入相關的類檔案啦。下面僅僅編寫乙個簡單的自動載入方法。1 優先使用cl...

php 命名空間和自動載入

命名空間 namespace class function get class model class get 使用命名空間的get 函式use class model 使用命名空間的model類當某個類被例項化使用時,autoload函式會自動載入該類,並用引數接收類的命名空間和類名 functi...

PHP 命名空間和自動載入

php5.3 之後引入了命名空間的特性,從本質上講,命名空間就是乙個容器,你可以將類 函式和變數放在其中,在命名空間中,你可以無條件地訪問這些項,在命名空間之外,必須匯入或引用命名空間,才能訪問它所包含的項。namespace my require one outputter3.php class ...