2015-03-02 107 views
1

在我以前的公司有一個全AJAX Web應用程序,有一個從零開始的框架被使用。頁面部分刷新的方式是用一個字符串調用控制器,控制器將加載一個或多個視圖文件。視圖文件幾乎總是調用模型中的一個或多個類。這和我到達那裏時一樣。模型調用視圖,或查看調用模型?

我現在正在與一家新公司合作開發一個新系統並尋找候選框架。關於codeigniter的30分鐘教程顯示控制器調用模型,模型加載視圖。

這與我以前的經歷相反,所以我想問一下哪種策略更常見。在我看來,這種觀點似乎是一種「殼」或結構,但僅限於需要模型去遵守商業規則。

我不確定我是否應該在這裏分享鏈接,我不是在嘗試宣傳codeigniter,但教程位於https://www.youtube.com/watch?v=47VOtKiw9AQ約10:00。謝謝

+3

我上次檢查視圖是用來顯示信息並可能收集一些信息(要傳遞給控制器​​)​​。但是這個觀點不應該直接調用模型或控制器。分開你的責任。 – 2015-03-02 13:43:42

+2

同意@AndreiP。控制器是「中心部分」。它必須是調用模型並加載視圖的人。模型應該調用的唯一東西就是數據庫。視圖從不調用任何東西[看看文檔說什麼](http://www.codeigniter.com/userguide3/overview/mvc.html) – AdrienXL 2015-03-02 13:51:52

+0

對於CodeIgniter,最常見的標準是,控制器正在調用模型來檢索數據,然後傳遞它以查看。視圖和模型之間不應有直接的聯繫。 – 2015-03-02 13:52:20

回答

0

教程。有很多。

控制器調用模型並將數據傳遞給視圖。那是標準答案。但是我現在傾向於 - 控制器分配特定視圖,然後調用模板,傳遞$ data。

然後在模板中 - 調用模型爲該模板創建導航欄,以及可選的頁面顯示模型。

否則 - 要麼你有my_controller這一切經過,可能有頁面顯示,導航等

來電或你必須把頁面顯示細節,每一個控制器。我個人並不是my_controller設計模式的忠實粉絲,並且在複雜控制器中調用導航欄並不是最佳選擇。

所以在這種情況下,可能會被視爲一個視圖 - 一個簡單的模板文件 - 將調用模型。但在這種情況下,它不是一個真正的「視圖」,因爲它不直接顯示任何東西 - 模板正在調用導航視圖,頁眉,頁腳視圖等等 - 然後實際的頁面內容由控制器分配。

這也給你更多的便攜性 - 當你需要改變關於頁面顯示或導航的細節時,你只需要去一個地方。

終於有很多的PHP框架和許多意見。經過漫長的休眠期之後,代言人框架正在積極開發之中。然而,如果你是從平方開始的,那麼也要看Node,它有一些引人注目的特性,這取決於你的用例。