锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲色图激情文学,亚洲AV中文无码乱人伦,亚洲日韩中文字幕天堂不卡http://www.tkk7.com/wuxufeng8080/category/26502.htmlzh-cnFri, 12 Oct 2007 09:25:48 GMTFri, 12 Oct 2007 09:25:48 GMT60MVC妯″紡鐨凱HP瀹炵幇(zt)http://www.tkk7.com/wuxufeng8080/articles/152344.html椋庝漢鍥?/dc:creator>椋庝漢鍥?/author>Fri, 12 Oct 2007 06:37:00 GMThttp://www.tkk7.com/wuxufeng8080/articles/152344.htmlhttp://www.tkk7.com/wuxufeng8080/comments/152344.htmlhttp://www.tkk7.com/wuxufeng8080/articles/152344.html#Feedback0http://www.tkk7.com/wuxufeng8080/comments/commentRss/152344.htmlhttp://www.tkk7.com/wuxufeng8080/services/trackbacks/152344.htmlMVC妯″紡鍦ㄧ綉绔欐灦鏋勪腑鍗佸垎甯歌銆傚畠鍏佽鎴戜滑寤虹珛涓涓笁灞傜粨鏋勭殑搴旂敤紼嬪紡錛屼粠浠g爜涓垎紱誨嚭鏈夌敤鐨勫眰錛屽府鍔╄璁″笀鍜屽紑鍙戣呭崗鍚屽伐浣滀互鍙婃彁楂樻垜浠淮鎶ゅ拰鎵╁睍鏃㈡湁紼嬪紡鐨勮兘鍔涖?/blockquote>
瑙嗗浘錛圴iew錛?/strong>

“瑙嗗浘”涓昏鎸囨垜浠佸埌Web嫻忚鍣ㄧ殑鏈緇堢粨鏋??姣斿鎴戜滑鐨勮剼鏈敓鎴愮殑HTML銆傚綋璇村埌瑙嗗浘鏃訛紝寰堝浜烘兂鍒扮殑鏄ā鐗堬紝浣嗘槸鎶婃ā鏉挎柟妗堝彨鍋氳鍥劇殑姝g‘鎬ф槸鍊煎緱鎬鐤戠殑銆?br />
瀵硅鍥炬潵璇達紝鏈閲嶈鐨勪簨鎯呭彲鑳芥槸瀹冨簲璇ユ槸“鑷垜鎰忚瘑錛坰elf aware錛?#8221;鐨勶紝瑙嗗浘琚覆鏌擄紙render錛夋椂錛岃鍥劇殑鍏冪礌鑳芥剰璇嗗埌鑷繁鍦ㄦ洿澶ф鏋朵腑鐨勮鑹層?br />
浠ML涓轟緥錛屽彲浠ヨXML鍦ㄨ瑙f瀽鏃訛紝DOM API鏈夌潃榪欐牱鐨勮鐭??涓涓狣OM鏍戦噷鐨勮妭鐐圭煡閬撳畠鍦ㄥ摢閲屽拰瀹冨寘鍚簡浠涔堛?錛堝綋涓涓猉ML鏂囨。涓殑鑺傜偣鐢⊿AX瑙f瀽鏃跺彧鏈夊綋瑙f瀽鍒拌鑺傜偣鏃跺畠鎵嶆湁鎰忎箟銆傦級

緇濆ぇ澶氭暟妯℃澘鏂規浣跨敤綆鍗曠殑榪囩▼璇█鍜岃繖鏍風殑妯℃澘鏍囩錛?br />
<p>{some_text}</p>
<p>{some_more_text}</p>


瀹冧滑鍦ㄦ枃妗d腑娌℃湁鎰忎箟錛屽畠浠唬琛ㄧ殑鎰忎箟鍙槸PHP灝嗙敤鍏朵粬鐨勪笢瑗挎潵鏇挎崲瀹冦?br />
濡傛灉浣犲悓鎰忚繖縐嶅瑙嗗浘鐨勬澗鏁f弿榪幫紝浣犱篃灝變細鍚屾剰緇濆ぇ澶氭暟妯℃澘鏂規騫舵病鏈夋湁鏁堢殑鍒嗙瑙嗗浘鍜屾ā鍨嬨傛ā鏉挎爣絳懼皢琚浛鎹㈡垚浠涔堝瓨鏀懼湪妯″瀷涓?br />
鍦ㄤ綘瀹炵幇瑙嗗浘鏃墮棶鑷繁鍑犱釜闂錛?#8220;鍏ㄤ綋瑙嗗浘鐨勬浛鎹㈠鏄撳悧錛?#8221;“瀹炵幇涓涓柊瑙嗗浘瑕佸涔咃紵” “鑳藉緢瀹規槗鐨勬浛鎹㈣鍥劇殑鎻忚堪璇█鍚楋紵錛堟瘮濡傚湪鍚屼竴涓鍥句腑鐢⊿OAP鏂囨。鏇挎崲HTML鏂囨。錛?#8221;


妯″瀷錛圡odel錛?/strong>

妯″瀷浠h〃浜嗙▼搴忛昏緫銆傦紙鍦ㄤ紒涓氱駭紼嬪簭涓粡甯哥О涓轟笟鍔″眰錛坆usiness layer錛夛級

鎬葷殑鏉ヨ錛屾ā鍨嬬殑浠誨姟鏄妸鍘熸湁鏁版嵁杞崲鎴愬寘鍚煇浜涙剰涔夌殑鏁版嵁錛岃繖浜涙暟鎹皢琚鍥炬墍鏄劇ず銆傞氬父錛屾ā鍨嬪皢灝佽鏁版嵁鏌ヨ錛屽彲鑳介氳繃涓浜涙娊璞℃暟鎹被錛堟暟鎹闂眰錛夋潵瀹炵幇鏌ヨ銆備婦渚嬭錛屼綘甯屾湜璁$畻鑻卞浗騫村害闄嶉洦閲忥紙鍙槸涓轟簡緇欎綘鑷繁鎵句釜濂界偣鐨勫害鍋囧湴錛夛紝妯″瀷灝嗘帴鏀跺崄騫翠腑姣忓ぉ鐨勯檷闆ㄩ噺錛岃綆楀嚭騫沖潎鍊鹼紝鍐嶄紶閫掔粰瑙嗗浘銆?br />

鎺у埗鍣紙controller錛?/strong>

綆鍗曠殑璇存帶鍒跺櫒鏄疻eb搴旂敤涓繘鍏ョ殑HTTP璇鋒眰鏈鍏堣皟鐢ㄧ殑涓閮ㄥ垎銆傚畠媯鏌ユ敹鍒扮殑璇鋒眰錛屾瘮濡備竴浜汫ET鍙橀噺錛屽仛鍑哄悎閫傜殑鍙嶉銆傚湪鍐欏嚭浣犵殑絎竴涓帶鍒跺櫒涔嬪墠錛屼綘寰堥毦寮濮嬬紪鍐欏叾浠栫殑PHP浠g爜銆傛渶甯歌鐨勭敤娉曟槸index.php涓儚switch璇彞鐨勭粨鏋勶細

<?php
switch ($_GET['viewpage']) {
case "news":
$page=new NewsRenderer;
break;
case "links":
$page=new LinksRenderer;
break;
default:
$page=new HomePageRenderer;
break;
}
$page->display();
?>


榪欐浠g爜娣風敤浜嗛潰鍚戣繃紼嬪拰瀵硅薄鐨勪唬鐮侊紝浣嗘槸瀵逛簬灝忕殑绔欑偣鏉ヨ錛岃繖閫氬父鏄渶濂界殑閫夋嫨銆傝櫧鐒朵笂杈圭殑浠g爜榪樺彲浠ヤ紭鍖栥?br />
鎺у埗鍣ㄥ疄闄呬笂鏄敤鏉ヨЕ鍙戞ā鍨嬬殑鏁版嵁鍜岃鍥懼厓绱犱箣闂寸殑緇戝畾鐨勬帶浠躲?br />

渚嬪瓙

榪欓噷鏄竴涓嬌鐢∕VC妯″紡鐨勭畝鍗曚緥瀛愩?br /> 棣栧厛鎴戜滑闇瑕佷竴涓暟鎹簱璁塊棶綾伙紝瀹冩槸涓涓櫘閫氱被銆?br />
<?php
/**
*  A simple class for querying MySQL
*/
class DataAccess {
/**
* Private
* $db stores a database resource
*/
var $db;
/**
* Private
* $query stores a query resource
*/
var $query; // Query resource
//! A constructor.
/**
* Constucts a new DataAccess object
* @param $host string hostname for dbserver
* @param $user string dbserver user
* @param $pass string dbserver user password
* @param $db string database name
*/
function DataAccess ($host,$user,$pass,$db) {
$this->db=mysql_pconnect($host,$user,$pass);
mysql_select_db($db,$this->db);
}
//! An accessor
/**
* Fetches a query resources and stores it in a local member
* @param $sql string the database query to run
* @return void
*/
function fetch($sql) {
$this->query=mysql_unbuffered_query($sql,$this->db); // Perform query here
}
//! An accessor
/**
* Returns an associative array of a query row
* @return mixed
*/
function getRow () {
if ( $row=mysql_fetch_array($this->query,MYSQL_ASSOC) )
return $row;
else
return false;
}
}
?>


鍦ㄥ畠涓婅竟鏀句笂妯″瀷銆?br />
<?php
/**
*  Fetches "products" from the database
*/
class ProductModel {
/**
* Private
* $dao an instance of the DataAccess class
*/
var $dao;
//! A constructor.
/**
* Constucts a new ProductModel object
* @param $dbobject an instance of the DataAccess class
*/
function ProductModel (&$dao) {
$this->dao=& $dao;
}
//! A manipulator
/**
* Tells the $dboject to store this query as a resource
* @param $start the row to start from
* @param $rows the number of rows to fetch
* @return void
*/
function listProducts($start=1,$rows=50) {
$this->dao->fetch("SELECT * FROM products LIMIT ".$start.", ".$rows);
}
//! A manipulator
/**
* Tells the $dboject to store this query as a resource
* @param $id a primary key for a row
* @return void
*/
function listProduct($id) {
$this->dao->fetch("SELECT * FROM products WHERE PRODUCTID='".$id."'");
}
//! A manipulator
/**
* Fetches a product as an associative array from the $dbobject
* @return mixed
*/
function getProduct() {
if ( $product=$this->dao->getRow() )
return $product;
else
return false;
}
}
?>


鏈変竴鐐硅娉ㄦ剰鐨勬槸錛屽湪妯″瀷鍜屾暟鎹闂被涔嬮棿錛屽畠浠殑浜や簰浠庝笉浼氬浜庝竴琛??娌℃湁澶氳琚紶閫侊紝閭f牱浼氬緢蹇嬌紼嬪紡鎱笅鏉ャ傚悓鏍風殑紼嬪紡瀵逛簬浣跨敤妯″紡鐨勭被錛屽畠鍙渶瑕佸湪鍐呭瓨涓繚鐣欎竴琛岋紙Row錛??鍏朵粬鐨勪氦緇欏凡淇濆瓨鐨勬煡璇㈣祫婧愶紙query resource錛??鎹㈠彞璇濊錛屾垜浠MYSQL鏇挎垜浠繚鎸佺粨鏋溿?br />
鎺ヤ笅鏉ユ槸瑙嗗浘??鎴戝幓鎺変簡HTML浠ヨ妭鐪佺┖闂達紝浣犲彲浠ユ煡鐪嬭繖綃囨枃绔犵殑瀹屾暣浠g爜銆?br />
<?php
/**
*  Binds product data to HTML rendering
*/
class ProductView {
/**
* Private
* $model an instance of the ProductModel class
*/
var $model;
/**
* Private
* $output rendered HTML is stored here for display
*/
var $output;
//! A constructor.
/**
* Constucts a new ProductView object
* @param $model an instance of the ProductModel class
*/
function ProductView (&$model) {
$this->model=& $model;
}
//! A manipulator
/**
* Builds the top of an HTML page
* @return void
*/
function header () {
}
//! A manipulator
/**
* Builds the bottom of an HTML page
* @return void
*/
function footer () {
}
//! A manipulator
/**
* Displays a single product
* @return void
*/
function productItem($id=1) {
$this->model->listProduct($id);
while ( $product=$this->model->getProduct() ) {
// Bind data to HTML
}
}
//! A manipulator
/**
* Builds a product table
* @return void
*/
function productTable($rownum=1) {
$rowsperpage='20';
$this->model->listProducts($rownum,$rowsperpage);
while ( $product=$this->model->getProduct() ) {
// Bind data to HTML
}
}
//! An accessor
/**
* Returns the rendered HTML
* @return string
*/
function display () {
return $this->output;
}
}
?>


鏈鍚庢槸鎺у埗鍣紝鎴戜滑灝嗘妸瑙嗗浘瀹炵幇涓轟竴涓瓙綾匯?br />
<?php
/**
*  Controls the application
*/
class ProductController extends ProductView {
//! A constructor.
/**
* Constucts a new ProductController object
* @param $model an instance of the ProductModel class
* @param $getvars the incoming HTTP GET method variables
*/
function ProductController (&$model,$getvars=null) {
ProductView::ProductView($model);
$this->header();
switch ( $getvars['view'] ) {
case "product":
$this->productItem($getvars['id']);
break;
default:
if ( empty ($getvars['rownum']) ) {
$this->productTable();
} else {
$this->productTable($getvars['rownum']);
}
break;
}
$this->footer();
}
}
?>


Click to fullsize


娉ㄦ剰榪欎笉鏄疄鐜癕VC鐨勫敮涓鏂瑰紡??姣斿浣犲彲浠ョ敤鎺у埗鍣ㄥ疄鐜版ā鍨嬪悓鏃舵暣鍚堣鍥俱傝繖鍙槸婕旂ず妯″紡鐨勪竴縐嶆柟娉曘?br />
鎴戜滑鐨刬ndex.php 鏂囦歡鐪嬭搗鏉ュ儚榪欐牱錛?br />
<?php
require_once('lib/DataAccess.php');
require_once('lib/ProductModel.php');
require_once('lib/ProductView.php');
require_once('lib/ProductController.php');
$dao=& new DataAccess ('localhost','user','pass','dbname');
$productModel=& new ProductModel($dao);
$productController=& new ProductController($productModel,$_GET);
echo $productController->display();
?>


婕備寒鑰岀畝鍗曘?br />
鎴戜滑鏈変竴浜涗嬌鐢ㄦ帶鍒跺櫒鐨勬妧宸э紝鍦≒HP涓綘鍙互榪欐牱鍋氾細

$this->{$_GET['method']}($_GET['param']); 


涓涓緩璁槸浣犳渶濂藉畾涔夌▼搴廢RL鐨勫悕瀛楃┖闂村艦寮忥紙namespace錛夛紝閭f牱瀹冧細姣旇緝瑙勮寖姣斿錛?br />
"index.php?class=ProductView&method=productItem&id=4"


閫氳繃瀹冩垜浠彲浠ヨ繖鏍峰鐞嗘垜浠殑鎺у埗鍣細

$view=new $_GET['class'];
$view->{$_GET['method']($_GET['id']);


鏈夋椂鍊欙紝寤虹珛鎺у埗鍣ㄦ槸浠跺緢鍥伴毦鐨勪簨鎯咃紝姣斿褰撲綘鍦ㄥ紑鍙戦熷害鍜岄傚簲鎬т箣闂存潈琛℃椂銆備竴涓幏寰楃伒鎰熺殑濂藉幓澶勬槸Apache group 鐨凧ava Struts錛屽畠鐨勬帶鍒跺櫒瀹屽叏鏄敱XML鏂囨。瀹氫箟鐨勩?

鐩稿叧闄勪歡錛?/strong>鏈枃瀹屾暣瀹炰緥

鏈枃鑻辨枃鍘熺増鍦板潃錛?/strong>http://www.phppatterns.com/index.php/article/articleview/11/


]]>
主站蜘蛛池模板: 亚洲精品免费在线| 国产大片免费网站不卡美女| 亚洲?V无码成人精品区日韩| 99久久国产免费-99久久国产免费| 亚洲激情校园春色| 亚洲综合激情另类专区| 在线jlzzjlzz免费播放| 理论秋霞在线看免费| 亚洲av无码一区二区三区不卡| 亚洲日本在线免费观看| 免费看无码特级毛片| 理论片在线观看免费| 亚洲精品蜜夜内射| 亚洲首页国产精品丝袜| 97久久精品亚洲中文字幕无码 | 亚洲国产人成中文幕一级二级| a级在线免费观看| 国产天堂亚洲精品| 亚洲爆乳少妇无码激情| 亚洲另类无码一区二区三区| 久久夜色精品国产亚洲av| 很黄很黄的网站免费的| 8x8x华人永久免费视频| 午夜影院免费观看| a级毛片黄免费a级毛片| 伊人免费在线观看| 亚洲免费观看视频| 亚洲AV无码成人网站在线观看| 亚洲AV综合色区无码一区| 亚洲精品无码午夜福利中文字幕| 成年女人免费视频播放77777| 91在线视频免费观看| 两个人看的www免费高清| 免费观看一区二区三区| 老牛精品亚洲成av人片| 国产一区二区三区亚洲综合| 国产精品亚洲专区一区| jizz18免费视频| 国产免费无码一区二区| 色一情一乱一伦一视频免费看| 亚洲综合久久成人69|