日韩天天综合网_野战两个奶头被亲到高潮_亚洲日韩欧美精品综合_av女人天堂污污污_视频一区**字幕无弹窗_国产亚洲欧美小视频_国内性爱精品在线免费视频_国产一级电影在线播放_日韩欧美内地福利_亚洲一二三不卡片区

《PHP設(shè)計模式介紹》第十七章 MVC 模式(4)_PHP教程

編輯Tag賺U幣
教程Tag:暫無Tag,歡迎添加,賺取U幣!

推薦:《PHP設(shè)計模式介紹》第十五章 表數(shù)據(jù)網(wǎng)關(guān)模式
前一章中使用動態(tài)記錄模式對數(shù)據(jù)庫表進行建立,獲取,更新(通過擴展實現(xiàn)刪除)每一行的操作。動態(tài)記錄模式是一種簡單的抽象數(shù)據(jù)庫連接的方式,但是這種簡潔性也正是它的弱點。動態(tài)記錄類只處理

model--view--controller程序表的“真實生活”版本看上去與上面顯示的“理想”的程序表非常相似。主要添加的是actionfactory引起每個動作,那是一個具體的命令。

在很多我開發(fā)的MVC運行程序中,第二個調(diào)度以默認ShowViewAction進行。

這個圖顯示了第一個調(diào)度創(chuàng)建了一個具體的指令ShowViewAction.這個動作反之會使用ViewFactory來創(chuàng)建一個具體的View類,Martin Fowlerj將的MVC關(guān)于View的PoEAA部分叫做View Helper。這個視圖可以使用你喜歡的模版引擎來選擇和解析一個模版文件,填充模版變量:從model取得數(shù)據(jù),進而通過模版呈現(xiàn)結(jié)果返回給客戶端。

這是一種可以提升MVC名譽的圖,但是實際上,這張圖的各個要素都被添加了,以滿足通過組織代碼使得維護變簡單的需要。

總之,我發(fā)現(xiàn)了使用一個特定的框架最顯著的障礙就是了解一個框架是怎樣運行的以及怎樣添加有特殊用途的功能。實際的組織是典型的一次性簡單了解,但是起初在沒有上下聯(lián)系的情況下它似乎又很難理解。

貫穿MVC的相關(guān)問題:

似乎有很多“什么到哪里”的問題圍繞著MVC,你會從不同的MVC擁護者那里收到很多不同的答案。

$_SESSION屬于哪里?一個爭議是說sessions是不變的數(shù)據(jù)存儲,通常是以文件形式保存在服務(wù)器上,因此最好歸入model的范疇。第二種說法就是session和其他的php superglobal一樣,session數(shù)據(jù)是輸入系統(tǒng)的,因此是屬于controller,另外一些開發(fā)員認為,sessions是用cookie執(zhí)行的,一種工作在http上的html里的技術(shù),所以是和view相關(guān)聯(lián)的。

身份認證是屬于哪里?它似乎像是應(yīng)用邏輯的一部分,因此是屬于model。但是如果你要限制只有通過驗證的用戶才能執(zhí)行特定動作(controller的部分)呢?好,controller可以進入model,所以身份認證歸入這里似乎是個完美的劃分。但是http認證呢?它也進入到controller嗎?

在整個概念中瀏覽器適合在哪里?很明顯是View,對嗎?如若你想通過java語言進行驗證呢?驗證不屬于controller和model碼?你怎么讓它進入View呢?

這些爭論都沒有平息的跡象,當(dāng)你在你的MVC實現(xiàn)中試圖找出怎么樣看待這些你關(guān)心的問題時以上每個都導(dǎo)致了一些挑釁的想法。

不含MVC的框架

很明顯不是每個框架都圍繞著嵌入在MVC模式的想法的分離上。這里是一個關(guān)于無MVC的框架想法的小例子

事件處理

當(dāng)你在gui環(huán)境下工作時,工具一般設(shè)置成響應(yīng)事件。想想button.click().一些php框架試圖采取這種為核心思想。在zend的php5編程比賽中認識了prado,它把事件處理作為核心概念。WACT使用Composite pattern來綜合controller的概念,每個都有“監(jiān)聽程序”,它能接近事件處理透視圖。

控制容器的反向

在java圈子里的一個熱門話題就是控制容器的反向(ioc),亦稱Dependency Injection pattern。一個好的介紹這個模式的文章在 http://www.martin- fowler.com/articles/injection.html.

這個模式結(jié)合了一個類似Pico的Dependency Injection容器和類似WACT的MVC框架,用以構(gòu)建一個“autowires”自身的應(yīng)用,這一模式是是與MVC正交的──這是一個我非常感興趣的領(lǐng)域


結(jié)束語

這里是一個簡短的MVC相關(guān)設(shè)計模式的導(dǎo)航.如果你想尋找完整的PHP下的MVC開發(fā)框架,我推薦你看Mojavi(http://www.mojavi.org/);這是一個很好的MVC示例,并且這個項目的開發(fā)很活躍,社區(qū)也比較有活力。

這一章也許沒有能夠解決你在web架構(gòu)方面的任何具體問題,希望能夠給你提供一些參考,能夠成為你展開相關(guān)研究的一個起點,或者能夠為你在編寫能為PHP開發(fā)帶來巨大變革的Magic Web Application Architecture時帶來一些靈感。

分享:《PHP設(shè)計模式介紹》第十四章 動態(tài)記錄模式
到目前為止,您所看到的這些設(shè)計模式大大提高了代碼的可讀性與可維護性。然而,在WEB應(yīng)用設(shè)計與開發(fā)中一個基本的需求與挑戰(zhàn):數(shù)據(jù)庫應(yīng)用,這些設(shè)計模式都沒有涉及到。本章與接下來的兩章—

共4頁上一頁1234下一頁
來源:模板無憂//所屬分類:PHP教程/更新時間:2008-08-22
相關(guān)PHP教程