亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

php中的MVC模式運用技巧

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


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


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


Interface DataSource
{
   public static function getInstance();
}

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


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



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


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;
   }
}


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


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


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


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


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


class ViewController implements Controller
{
   private $mod = array();
   public function push($key,$value);
   {
       //實現(xiàn)你的代碼,將類注冊進$this->mod;
   }
   public function pop($key)
   {        
       //實現(xiàn)你的代碼,將$this->mod[$key]值為null;
   }
   public function execute($key)
   {
       //在這里實現(xiàn)你的代碼,生成實例.注意利用php5新的特性,異常的處理
   }
}
好了,下面是表現(xiàn)層,這里將實現(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()
   {
       //實現(xiàn)你的代碼,調用Tech類和更多的DataBaseOperation子類
   }
}
好了,下面是總入口  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使用內置dir類實現(xiàn)目錄遍歷刪除

    PHP使用內置dir類實現(xiàn)目錄遍歷刪除

    這篇文章主要介紹了PHP使用內置dir類實現(xiàn)目錄遍歷刪除的方法,涉及php中dir類的使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-03-03
  • SESSION存放在數(shù)據(jù)庫用法實例

    SESSION存放在數(shù)據(jù)庫用法實例

    這篇文章主要介紹了SESSION存放在數(shù)據(jù)庫用法,自定義了一個簡單的針對數(shù)據(jù)操作的session類并給出了使用該類存儲到數(shù)據(jù)庫的相關技巧,需要的朋友可以參考下
    2015-08-08
  • PHP讀取大文件的多種方法介紹

    PHP讀取大文件的多種方法介紹

    這篇文章主要為大家詳細介紹了PHP讀取大文件的多種方法,感興趣的朋友可以參考一下
    2016-04-04
  • Laravel中使用阿里云OSS Composer包分享

    Laravel中使用阿里云OSS Composer包分享

    這篇文章主要介紹了Laravel中使用阿里云OSS Composer包分享,本文講解其使用方法,文件下載請前往文件中的github地址,需要的朋友可以參考下
    2015-02-02
  • php中的標量數(shù)據(jù)類型總結

    php中的標量數(shù)據(jù)類型總結

    在本篇文章里小編給大家整理了一篇關于php中的標量數(shù)據(jù)類型總結內容,對此有興趣的朋友們可以跟著學習下。
    2022-01-01
  • PHP Mysqli 常用代碼集合

    PHP Mysqli 常用代碼集合

    這篇文章主要介紹了PHP Mysqli 常用代碼集合,想要使用php mysqli的朋友可以參考下
    2016-11-11
  • smarty表格換行實例

    smarty表格換行實例

    這篇文章主要介紹了smarty表格換行的方法,可實現(xiàn)針對表格的靈活操作,需要的朋友可以參考下
    2014-12-12
  • linux下編譯安裝memcached服務

    linux下編譯安裝memcached服務

    這篇文章主要介紹了linux下編譯安裝memcached服務,需要的朋友可以參考下
    2014-08-08
  • php設計模式 Facade(外觀模式)

    php設計模式 Facade(外觀模式)

    為子系統(tǒng)中的一組接口提供一個一致的界面,定義一個高層接口,使得這一子系統(tǒng)更加的容易使用
    2011-06-06
  • PHP調用Linux命令權限不足問題解決方法

    PHP調用Linux命令權限不足問題解決方法

    這篇文章主要介紹了PHP調用Linux命令權限不足問題解決方法,本文是解決項目問題總結而來,通過修改sudo配置文件解決無權限執(zhí)行命令問題,需要的朋友可以參考下
    2015-02-02

最新評論