Bootstrap 類本身典型的內容不多;通常,它只是擴展 bootstrap 基類,而裏面沒有任何代碼:
帶有一個對應的配置文件:
; APPLICATION_PATH/configs/application.ini [production] autoloaderNamespaces[] = "My_" bootstrap.path = APPLICATION_PATH "/Bootstrap.php" bootstrap.class = "Bootstrap" pluginpaths.My_Bootstrap_Resource = "My/Bootstrap/Resource" resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers" [testing : production] [development : production]
注意:自動加載器的命名空間
因爲以下例子使用的是定製的代碼,我們需要在我們的配置文件中爲這些代碼註冊命名空間;這將通過 autoloaderNamespaces 配置鍵完成,它是一個數組。另外,爲了保證定製的插件資源被找到,我們需要在 bootstrap 註冊一個插件前綴路徑。這將通過 pluginpaths 配置鍵做到,它是一個關聯數組,其中的鍵名代表將要使用的前綴,值代表前綴的相對的路徑。
然而,對初始化作必須的定製,你有兩個選擇。首先,你可以寫一個以 _init 爲前綴的方法,來指定將要引導的代碼。這些方法將會被 bootstrap() 調用,也能被當作公共方法被調用:bootstrap()。它們可以接受一個可選的數組參數。
如果你的資源方法返回一下值,它會被保存在 bootstrap 內的一個容器中。這將會很有用,特別是需要和不同資源互動的時候(例如一個資源把它自己注入到另外一個資源)。getResource() 方法然後可以用來檢索這些值。
下面的例子展示了一個初始化請求對象的資源方法。它使用了依賴性檢查(它取決於前端控制器),從 bootstrap 捕獲一個資源,然後返回一個值,保存到 bootstrap 中。
注意在這個例子中,bootstrap() 的調用;這將確保前端控制器在調用這個方法之前已經被初始化。這個調用可能觸發一個資源或者這個類內的另外一個方法。
另外一個選擇是使用資源插件。資源插件是擔負特定初始化的對象,可以在以下情況下被指定:
- 當實例化 Zend_Application 對象
- bootstrap 對象初始化的過程中
- 可以通過調用 bootstrap 對象的方法來明確指定它們
資源插件應用了 Zend_Application_Resource_ResourceAbstract 類,它簡單的定義了它們允許調用者和選項注入,並且他們有一個 init() 方法。舉例來說,一個定製的視圖引導資源可能看起來是這樣的:
爲了告訴引導程序使用這個,你可能需要提供資源插件類的名字,或者一個插件加載器前綴路徑和插件資源短名的組合(例如,“view”):
資源插件可以通過訪問上一級 bootstrap 來調用其它的資源和初始化:
在普通用法中,你應該實例化應用程序,引導它,和運行它:
對於一個定製的腳本,你可能需要簡單的初始化指定的資源:
不同於使用 bootstrap() 方法去調用內部方法或者資源,你可以使用重載: