MVC

2010-03-28 43 views
0

外處理輸入與Zend框架在一個經典Zend框架MVC設置,似乎有從模型/視圖/控制器實例中獲得的通用_request對象所概述hereMVC

$this->_request->getPost('variablename'); 

是這請求對象以某種方式在非MVC設置中可用?

如果是:我將如何初始化並訪問它?

回答

2

我不會使用ZF的MVC結構之外的Zend_Controller_Request_*對象(即使可能,)。您可以通過類名稱看到它已屬於控制器包,它的API公開了一些完全針對ZF的MVC中使用的方法,這些方法由全部子類型繼承。

使用ZF的MVC時沒問題,但對於Request對象之外的用法做得太多了。 Request對象的想法是將當前的Request環境從Superglobals(ZF不支持,它只是位於頂部)封裝並解耦。在我看來,所有關於模塊,控制器和操作的額外內容都不應該成爲它的一部分。這在ZF中才有意義。

編寫一個Request對象並不困難,所以我相信你可以輕鬆地創建一個更輕量級的版本。下面是一些基本的例子:

最後,這是你的選擇,雖然。

+1

閱讀'Controller_'時,我有同樣的不安情緒。我很可能會推出自己的產品,或者使用您鏈接的產品之一 - 它們看起來非常乾淨漂亮。謝謝! – 2010-03-28 21:17:27

+0

(會+1,但今天得票。) – 2010-03-28 21:38:06

1

前端控制器初始化請求和響應對象並將它們傳遞給路由器。路由器調用請求的動作,並且(通常)將返回的內容附加到響應中。所以這些對象可以從MVC的Controller層獲得。

編輯
FrontController設計使用以下代碼來設置請​​求:從Zend控制器或應用程序外

$request = new Zend_Controller_Request_Http(); 

使用請求對象這種方式是非常簡單明瞭,所以使用它模塊應該不成問題。 Zend_Controller_Request_Http使用Zend_Uri。

+0

但如果我根本不使用MVC模式呢?有什麼辦法可以利用'_request'對象嗎?這並不是什麼大不了的事情,但是我仍然在項目中使用ZF作爲組件庫,所以它可以很好地切換,也可以結合'Zend_Filter_Input'函數。 – 2010-03-28 12:28:04

+0

@皮卡:檢查編輯的答案。 – erenon 2010-03-28 16:27:58