Zend 的自動載入機制蠻複雜的,不過也因此具備了強大的修改彈性和空間,可以做出多樣化的設計。
Namespace
Zend 可以用 Zend 的套件,是因為它預設就有一個 Zend_ 的命名空間,如果想要使用其他 library 的話,就必須跟 Autoloader 說一聲,你也有自己的命名空間想註冊:
註冊方法很簡單,直接在 application.ini 裡加一行:
Autoloadernamespaces[] = "Test" |
這樣就可以在 library/Test 下,放自己的 library 了,比方說:
$news = new Test_News(); |
Resource Autoloader
資源指的是 Model、Form ….等,它的路徑和類別名跟上面提到的是使用不同的規則
因為這些資源是跟 Application 有關,所以一開始的命名空間也是跟 Application name 綁在一起的,Application name 也可以直接在 application.ini 做修改:
appnamespace = "MyApp" |
Zend_Application_Module_Autoloader 裡面的資源,預設定義好的路徑:
| Resource Name | Path |
|---|---|
| Model_DbTable | models/DbTable |
| Model_Mapper | models/mappers |
| Form | forms |
| Model | models |
| Plugin | plugins |
| Service | services |
| View_Helper | views/helpers |
| View_Filter | views/filters |