mvc模式的php實現
原作:harry fuecks
翻譯:easy chen
mvc模式在**架構中十分常見。它允許我們建立乙個三層結構的應用程式,從**中分離出有用的層,幫助設計師和開發者協同工作以及提高我們維護和擴充套件既有程式的能力。
檢視(view)
「檢視
」主要指我們送到
web瀏覽器的最終結果
——比如我們的指令碼生成的
html
。當說到檢視時,很多人想到的是模版,但是把模板方案叫做檢視的正確性是值得懷疑的。
對檢視來說,最重要的事情可能是它應該是
「自我意識(
self aware)」
的,檢視被渲染(
render
)時,檢視的元素能意識到自己在更大框架中的角色。 以
xml為例,可以說
xml在被解析時,
dom api
有著這樣的認知
——乙個
dom樹里的節點知道它在**和它包含了什麼。
(當乙個
xml文件中的節點用
sax解析時只有當解析到該節點時它才有意義。)
絕大多數模板方案使用簡單的過程語言和這樣的模板標籤:
<
p
>
p
>
<
p
>
p
>
它們在文件中沒有意義,它們代表的意義只是
php將用其他的東西來替換它。
如果你同意這種對檢視的鬆散描述,你也就會同意絕大多數模板方案並沒有有效的分離檢視和模型。模板標籤將被替換成什麼存放在模型中。
在你實現檢視時問自己幾個問題:
「全體檢視的替換容易嗎?
」「實現乙個新檢視要多久?
」 「能很容易的替換檢視的描述語言嗎?(比如在同乙個檢視中用
soap
文件替換
html
文件)」
模型(model)
模型代表了程式邏輯。(在企業級程式中經常稱為業務層(
business layer
))總的來說,模型的任務是把原有資料轉換成包含某些意義的資料,這些資料將被檢視所顯示。通常,模型將封裝資料查詢,可能通過一些抽象資料類(資料訪問層)來實現查詢。舉例說,你希望計算英國年度降雨量(只是為了給你自己找個好點的度假地),模型將接收十年中每天的降雨量,計算出平均值,再傳遞給檢視。
控制器(controller)
簡單的說控制器是
web應用中進入的
請求最先呼叫的一部分。它檢查收到的請求,比如一些
get變數,做出合適的反饋。在寫出你的第乙個控制器之前,你很難開始編寫其他的
php**。最常見的用法是
index.php
中像switch
語句的結構:
<?php
switch (
$_get
[
'viewpage'
])
$page
->
display
();
?>
這段**混用了面向過程和物件的**,但是對於小的站點來說,這通常是最好的選擇。雖然上邊的**還可以優化。
控制器實際上是用來觸發模型的資料和檢視元素之間的繫結的控制項。
實現自己的MVC框架 php 1
從封閉的大學出來,重新接觸到著時時都在變化的社會的時候,不禁流下了眼淚,同時站在原地感嘆著這世界。從哥哥那裡聽說mode2和mvc的概念,到開始看mvc的文章,又到現在的想法,我又感覺到了久違的熱情,呵呵。在了解到mvc模型的可行性後,我打算將mvc應用於自己的畢業設計 web交易平台 這本身就是個...
PHP例項 實現超級簡單的MVC模式
下面是乙個超級簡單的mvc結構實現,甚至連資料來源都用了乙個內建的固定陣列,雖然簡單,但其實眾多的php framework核心實現的思想應該和這個是差不多的,只不過一些framework提供了更多的方便開發者使用的工具,我也想自己來實現乙個php的 框架,目前正在著手策劃中,也希望自己能夠從框架的...
PHP實現MVC思路
我相信已經有很多這樣的文章了,但是我今天還是願意把自己的經驗與大家分享一下。純屬原創,我也沒什麼保留,希望對新手有幫助,有說的不對的地方,也歡迎指出。簡單的說就是將 原始碼分類 分層。mvc三個字母的含義 m model 模型,負責資料庫操作。v view 檢視,負責呼叫model調取資料,再呼叫模...