php在5.1.2之後加入autoload的功能,目的是為了使用放在其他檔案的類別來建立物件時,省去include或require的步驟,讓php自行載入類別檔案。這個載入的過程,使用者可以自行設計,一般可以透過建立__autoload()函數來建立自動載入的的過程,而這個函數接受一個參數,就是類別名稱。例如:
function __autoload($classname){
require $classname . “.php”;
}
當使用者新建一個物件且該類別尚未存在,php就會自動執行__autoload(),並將該類別名稱傳給__autoload。
當瞭解這個自PHP 5.1.2之後加入的功能之後,再來學zend_framework的autoloader就不會眼冒金星了。
預設情況下,zend_framework是使用Zend_Loader::LoadClass作為autoloader,它會搜尋include_path裡是否具有需要的類別,而Zend_Framework裡的類別名稱實際上會對應到系統的資料夾名稱,當Zend_Loader::LoadClass載入類別名稱時,它會將類別名稱裡的“_”轉換為作業系統的資料夾的區隔字元,例如:\或/。