ホームページ  >  記事  >  バックエンド開発  >  php_PHP チュートリアルで MVC パターンを使用するためのヒント

php_PHP チュートリアルで MVC パターンを使用するためのヒント

WBOY
WBOYオリジナル
2016-07-21 15:55:05640ブラウズ

php での MVC パターンの適用
まず、例を示します:
シンプルな記事表示システム
シンプル期間中、この記事システムは読み取り専用であると仮定します。つまり、この例では記事の公開は行われません。さあ始めましょう。
データベースの読み込みだけなのでインターフェースを2つ定義しました


Interface DataOperation
{
Public function select($info);


上記のインターフェース定義データ インターフェイスの場合、select メソッドは必要な記事を返します。 selectNum メソッドは、ページング表示に使用される記事の総数を返します。$info はクエリ条件を格納するために使用される配列です


Interface DataSource
{
public static function getInstance();
}

ここではデータベースを操作していると仮定し、DataSource はインターフェースとこれを実装するすべてのインスタンスを定義しますインターフェイス クラスは静的オブジェクトを取得します


インターフェイス コントローラー
{
パブリック関数 pop();
パブリック関数 use();
インターフェイス ビュー
{
パブリック関数 display();
}



それでは、実装しましょう。
以下は、DataSource インターフェースを実装するクラスを定義します。 function getInstance ()

}
return self::$instance;
}
}


DataOperationを実装するための抽象クラスを定義します。データベース オブジェクトを抽象クラスに格納するので、すべてのサブクラスがこのオブジェクトを共有できること


抽象クラス DataBaseOperation は DataOperation を実装します
protected $db = null;
public function __construct()
{
$this->db = DataBaseSource::getInstance()
}
public function select($info);
}


抽象クラス DataBaseOperation を実装するビジネス サブクラスを作成しましょう


class Tech extends DataBaseOperation
{
public function select($info)
{
// 実装しますhere Code
}
public function selectNum($info)
{
// ここにコードを実装します
}
}


ビジネスロジック層を実装しました、以下は制御層です


class ViewController実装er
{
private $mod = array();
public function Push($key,$value);
{
//コードを実装し、クラスを $this->mod に登録します }
public function Pop($ Key)
{) // コードを実装します。 $ this-& gt; mod [$ key] の値は null です。 php5 の新機能、例外処理に注意してください
}
}
はプレゼンテーション層であり、Interface View
abstract ArticleView は View
{
protected $smarty = null;
public function __construct()
$this->
public function display()
{
試してみる
{
$viewController = new ViewController();
$viewController->push("tech",TechArticleView);
//継続的な増加
$mod = $_GET["mod"]:$_GET["mod"]:$_POST["mod "];
//最後に
$viewController->execute($key);
}
catch(Exception $e)
{
//例外をどのように処理するかはあなたの仕事です
}


www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/318340.html技術記事 php での MVC パターンの適用 まず、単純な記事表示システムの例を示します。単純期間中、この記事システムは読み取り専用であると仮定します。つまり、この例には記事は含まれません...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。