2012-07-29 79 views

回答

4

查看MVC啓發式Web模式中的類(在Web上實現傳統的MVC非常困難,僅使用PHP就不可能)負責表示邏輯。然後創建對請求的響應並處理多個模板。

信息從模型層到選定視圖的方式很大程度上取決於MVC啓發模式的實現方式。如果您使用的是MVP或MVVM,則信息由控制器提供,並且該視圖是被動的(但視圖是而非啞模板)。如果您要使用Model2 MVC或HMVC模式,則視圖將從模型圖層處於活動狀態。

當此視圖已獲取信息時,它決定與模板合併。或者即使模板是必要的。然後創建響應。

每個View生成的響應可以是HTML,JSON,XML或純文本。或者,如果需要的話,只發送一個HTTP頭(就像做重定向時一樣)。這全是演示邏輯的一部分。

-1

視圖層是返回的HTML數據

+0

-1,視圖不是圖層。它是由視圖和控制器組成的「表示層」的一部分。另外,因爲當層由功能組成時? – 2012-07-29 23:10:44

+0

謝謝@tereško但我希望你能閱讀這個問題。 – pckabeer 2012-07-30 05:05:55

+0

如果OP的兩個建議答案都是錯誤的,那麼您必須選擇一個答案。 – 2012-07-30 09:35:44

3

模型,控制器和視圖的邊界可以證明這樣的功能:

/* model models/post.php */ 

<?php 
    class Post { 
    public static all() { 
     return Array(...); 
    } 
    } 
?> 

/* controller /posts/index.php */ 

<?php 
    require "../../models/post.php" 
    $posts = Post.all(); 
    require "../../views/posts/index.php" 
?> 

/* view /views/posts/index.php */ 

<?php foreeach ($posts as $post): ?> 
    <p><?php echo $post['name']; ?></p> 
<?php endforeach; ?> 

意識形態上很可能只是功能,但通常的做法是像模板引擎中的模板。所以視圖層是html + data insertions(沒有我們如何得到的邏輯和爲什麼)。例如,意識形態也是功能,但不是框架編程語言的功能。

+0

-1:視圖不是一個愚蠢的模板,模型不是一個類。 – 2012-07-29 17:48:10

+0

這是非常簡單和錯誤的看MVC(它實際上是MVP的相同的錯誤實現,已由Rails傳播)。你的回答堅持認爲,這些觀點沒有邏輯。基本上你的答案與[pckabeer's](http://stackoverflow.com/a/11707811/727208)相同,只是填充了錯誤的代碼。 – 2012-07-30 02:23:19

0

視圖是「模板」
模式是「數據」
控制器是「連接器」和algorithems地方。

+0

-1:視圖不是模板,模型不是數據,你甚至沒有絲毫的想法控制器應該做什麼。 – 2012-07-29 17:44:08

0

視圖層受制於您希望在客戶端上以可視形式顯示的內容。在大多數情況下,它是HTML,CSS和Javascript,你也可以使用XML和JSON。

在GENRAL,

控制器詢問模型,以提供數據。

控制器可以根據需要更改此數據。

控制器將數據發送到視圖以在template/html的幫助下顯示。

+0

這是MVP的混蛋,由Rails和其他以原型爲重點的框架推廣。 – 2012-07-29 17:34:59

+0

不,我說的是MVC而不是MVP – 2012-07-29 21:10:59

+0

控制器從模型層請求信息並將其傳遞給視圖實例稱爲「主講者」。 – 2012-07-29 23:00:39