ホームページ > php教程 > php手册 > PHP で MVC パターンを使用するためのヒント

PHP で MVC パターンを使用するためのヒント

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
リリース: 2016-06-13 12:31:28
オリジナル
1133 人が閲覧しました

php での MVC パターンの適用
まず、例を示します。
単純な記事表示システム
単純期間中、この記事システムは読み取り専用であると想定します。つまり、この例では、記事は含まれません。リリースは開始されます。
データベースの読み取りのみを行うため、2 つのインターフェイス


Interface DataOperation
{
public function select($info);
public function selectNum ($info); を定義しました。 ;
}


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


Interface DataSource
{
public static function getInstance()
}

ここでは次のように仮定します。 DataSource はインターフェースを定義します。このインターフェースを実装するすべてのインスタンス クラスは、静的オブジェクト


public function Pop(); を取得します。関数プッシュ();
パブリック関数実行();
インターフェイス ビュー
{
パブリック関数 display();



それでは実装してみましょう。
以下は DataSource インターフェイスを実装するクラスを定義します。このクラスはシングルトン パターンを使用します。


class DataBaseSourceimplement DataSource
{
public static $instance = null;
public static function getInstance()
{
if(self::$instance == null)
{
self::$instance == new PDO(" mysql:host=localhost;dbname=article","root","123456"); >DataOperation を実装する抽象クラスを定義します。データベース接続を共有する必要があるため、抽象クラスでデータベース オブジェクトを初期化します。すべてのサブクラスはこのオブジェクトを共有できます。


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


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


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


ビジネス ロジック層を実装しました。以下はコントロールです。レイヤー


クラス ViewController はコントローラー
{
private $mod = array();
public function Push($key,$value); // コードを実装し、クラスを $this-> mod に登録します。 }
public function Pop($key)
{ 🎜> public functionexecute($key)
{ //ここにコードを実装し、サンプルを生成します。php5 の新機能である例外処理に注意してください。
}
}
わかりました。以下はプレゼンテーション層です。ここでは、インターフェイス ビュー
が抽象化されています。 ArticleView は View
{
protected $smarty = null;
public function __construct()
{
$this- >smarty = new Smarty(); /// 以下Smarty
}
}
科学技術記事の表示ページなどの特定のページ
class TechArticleView extends ArticleView
{
のいくつかの属性値を定義できます。 public function display()
{
// コードを実装し、Tech クラスとその他の DataBaseOperation サブクラスを呼び出します
}
}
わかりました、これがメインの入り口です。index.php
try
{
$viewController = new ViewController();
$viewController->push("tech",TechArticleView);
// 連続増加
$mod = $_GET[ "mod"]:$_GET["mod"]:$_POST["mod"]
//最後に
$viewController->execute($ key)
}
catch( Exception $e)
{
// 例外をどのように処理するかはあなたの仕事です
}


このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
PHP 拡張子 intl
から 1970-01-01 08:00:00
0
0
0
phpのデータ取得?
から 1970-01-01 08:00:00
0
0
0
PHP GET エラー レポート
から 1970-01-01 08:00:00
0
0
0
phpを上手に学ぶ方法
から 1970-01-01 08:00:00
0
0
0
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート