Interf " /> 免费h无遮挡动漫在线看,色天天综合色天天天天看大,午夜亚洲精品

一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

php中的MVC模式運(yùn)用技巧

php中的MVC模式運(yùn)用
首先我來舉個(gè)例子:
一個(gè)簡單的文章顯示系統(tǒng)
簡單期間,我們假定這個(gè)文章系統(tǒng)是只讀的,也就是說這個(gè)例子將不涉及文章的發(fā)布,現(xiàn)在開始了。
由于只涉及數(shù)據(jù)庫的讀取,所以我定義了兩個(gè)interface


Interface DataOperation
{
   public function select($info);
   public function selectNum($info);
}


上面這interface定義了讀取數(shù)據(jù)的接口,select方法將返回所需要的文章。selectNum方法返回文章的總數(shù),這是分頁顯示時(shí)用到的。$info是一個(gè)數(shù)組,用來存放查詢條件


Interface DataSource
{
   public static function getInstance();
}

這里我們假定我們操作的是數(shù)據(jù)庫,DataSource定義一個(gè)接口,所有實(shí)現(xiàn)該接口的實(shí)例類將得到一個(gè)靜態(tài)對(duì)象


Interface Controller
{
   public function pop();
   public function push();
   public function execute();
}
Interface View
{
   public function display();
}



好了,我們來實(shí)現(xiàn).
下面定義一個(gè)類來實(shí)現(xiàn)DataSource接口,這個(gè)類運(yùn)用了單例模式


class DataBaseSource implements DataSource
{
   public static $instance = null;
   public static function getInstance()
   {
       if(self::$instance == null)
       {
           self::$instance == new PDO("mysql:host=localhost;dbname=article","root","123456");
       }
       return self::$instance;
   }
}


定義一個(gè)抽象類來實(shí)現(xiàn)DataOperation,我們要共享一個(gè)數(shù)據(jù)庫連接,所以我在抽象類中將這個(gè)數(shù)據(jù)庫對(duì)象初始化,這樣,所有的子類都能共享這個(gè)對(duì)象


abstract class DataBaseOperation implements DataOperation
{
   protected $db = null; 
   public function __construct()
   {
       $this->db = DataBaseSource::getInstance();
   }
   public function select($info);
}


下面我來寫一個(gè)業(yè)務(wù)子類來實(shí)現(xiàn)抽象類DataBaseOperation


class Tech extends DataBaseOperation
{
   public function select($info)
   {
       //在這里實(shí)現(xiàn)你的代碼
   }
   public function selectNum($info)
   {
       //在這里實(shí)現(xiàn)你的代碼
   }
}


業(yè)務(wù)邏輯層我們實(shí)現(xiàn)了,下面是控制層


class ViewController implements Controller
{
   private $mod = array();
   public function push($key,$value);
   {
       //實(shí)現(xiàn)你的代碼,將類注冊(cè)進(jìn)$this->mod;
   }
   public function pop($key)
   {        
       //實(shí)現(xiàn)你的代碼,將$this->mod[$key]值為null;
   }
   public function execute($key)
   {
       //在這里實(shí)現(xiàn)你的代碼,生成實(shí)例.注意利用php5新的特性,異常的處理
   }
}
好了,下面是表現(xiàn)層,這里將實(shí)現(xiàn)Interface View
abstract ArticleView implements View
{
   protected $smarty = null;
   public function __construct()
   {
       $this->smarty = new Smarty();
       ///下面你可以定義smarty的一些屬性值
   }
}
具體的頁面,例如科技文章的顯示頁面
class TechArticleView extends ArticleView
{
   public function display()
   {
       //實(shí)現(xiàn)你的代碼,調(diào)用Tech類和更多的DataBaseOperation子類
   }
}
好了,下面是總?cè)肟?nbsp; index.php
try
{
   $viewController = new ViewController();
   $viewController->push("tech",TechArticleView);  
//持續(xù)的增加  
   $mod = $_GET["mod"]:$_GET["mod"]:$_POST["mod"];
   //最后
   $viewController->execute($key);
}
catch(Exception $e)
{
       //如何處理異常就是你的事了
}

php技術(shù)php中的MVC模式運(yùn)用技巧,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 制服丝袜怡红院 | 亚洲国产视频网 | 青草草产国视频 | 欧美精品v日韩精品v国产精品 | 国产在线中文字幕 | 美女黄网站 | 1024你懂的国产精品 | 国产在热线精品视频国产一二 | 国产视频中文字幕 | 999无色码中文字幕 999影院成 人在线影院 | 久久久久久极精品久久久 | 国产成人精品一区二三区 | 午夜精品久久久久久中宇 | 巨大欧美黑人xxxxbbbb | 色哟哟在线视频 | 377日本大胆欧美人术艺术 | 久久久精品影院 | 精品极品三级久久久久 | 国产乱子精品免费视观看片 | 国产精品香蕉成人网在线观看 | 久久国产精品-久久精品 | 九九亚洲 | 久久精品国产主播一区二区 | 久草热视频在线观看 | 国产高清www免费视频 | 玖玖在线免费视频 | 二区久久国产乱子伦免费精品 | 国产小视频在线播放 | 免费伊人 | 久艾草国产成人综合在线视频 | 亚洲第一se情网站 | 91热国内精品永久免费观看 | 国内精品免费网站牛牛 | 国产成人小视频 | 2021国产精品系列一区二区 | 黑人美国一级一级爰片 | 最新国产精品精品视频 | 好吊妞在线播放 | 亚洲激情小视频 | 亚洲精品福利在线观看 | 一级做a爰片性色毛片刺激 一级做a爰片性色毛片黄书 |