2010-07-18 107 views
4

我正在閱讀關於資源方法的Zend Framework Book: Survive the Deep End。它講述了資源方法如何覆蓋資源插件。Zend框架:資源插件vs方法

別急,還有一個資源 插件 (Zend_Application_Resource_View),這 還可以創建一個名爲資源觀 。我們可以有兩個視圖資源嗎? 答案是否定的 - 我們可以有一個且只有 一個

Zend Framework Manual

一個很好的方法來創建可重用的 引導資源和卸載 多的編碼離散 類是利用資源插件 ...的意圖是,開發者 應該自己寫封裝 自己初始化的需求

對我來說,資源方法似乎是一種更直觀的方式來初始化資源,爲什麼我應該使用插件?這只是我喜歡哪一個的問題?或者他們在不同的環境中使用?

將資源方法替換或添加到提供的資源插件提供的功能嗎?因爲如果它取代,我需要確保我初始化所有變量或任何我需要的?

通過返回從_initView()新的Zend_View 例如, Zend_Application將接受 更換並不會試圖通過運行 Zend_Application_Resource_View 覆蓋我們的修改設置 了一個標準的默認的Zend_View 實例與缺點我們只是 糾正

,如果我不返回一個Zend_View,這將是,如果我沒有足夠的方法?我可以說我應該總是從資源方法中返回一些東西嗎?

在這裏,我們做同樣的事情用 的的getResource()方法,通過 Zend_Application_Resource_Frontcontroller

從以上檢索 創建和配置前端控制器 的一個實例,我可以說,如果我希望我的資源方法具有由提供的資源插件設置的默認值,我可以做一個getResource() 1st?

回答

5

回答您的問題:

我應該使用資源插件或方法?

我會說這很大程度上取決於個人喜好。正如你手冊中的引用所述,如果你使用資源插件,在另一個項目中重複使用代碼將變得更加容易(因爲移動/測試一個類更容易,而不是從一個方法中刪除「粘貼」文本) 。在我看來,方法使它更容易看到自舉過程中發生了什麼,至少在開始變得有點複雜之前,在這種情況下,將它們轉換爲插件是有意義的。

將資源方法替換或添加到資源插件提供的功能嗎?

我相信它的工作方式是當引導類首次實例化時插件被加載並初始化。然後引導程序將通過您的方法並運行這些方法。如果你有一個與插件資源相同的方法,你的方法將覆蓋該插件。但是,您也可以從您的方法訪問現有資源並進行修改,在這種情況下,您的方法正在添加到插件提供的功能中。

請記住,插件不會奇蹟般地自行運行(除了前端控制器插件,它將始終運行)。只有當你的application.ini觸發它們時(或者如果你從你自己的方法調用它們),它們纔會被使用。

如果我不返回一個Zend_View,它會像我沒有方法?我可以說我應該總是從資源方法中返回一些東西嗎?

從資源方法返回某些東西是一種很好的做法,因爲這允許資源被其他方法或應用程序的其他部分訪問。但是,該方法仍將運行而不具有返回值。但是如果你添加了一個_initView方法並設置一個新的Zend_View對象,如果你不用它做任何事情,它將不會對你的應用程序產生任何影響。

我可以說,如果我想我的資源的方法有通過所提供的資源插件的默認設置,我可以做的getResource()

是。但是我會確保你在這種情況下返回資源,只是爲了讓其他任何訪問資源的方法都使用你的修改過的而不是插件設置的方法。

就我個人而言,我會堅持application.ini +資源插件或資源方法。如果所有的資源都集中在一個地方,那麼更容易看到發生了什麼。