ホームページ  >  記事  >  php教程  >  PHP の例: 非常に単純な MVC 構造の実装

PHP の例: 非常に単純な MVC 構造の実装

WBOY
WBOYオリジナル
2016-06-21 08:56:561008ブラウズ

以下は非常に単純な MVC 構造の実装です。データ ソースでも組み込みの固定配列が使用されていますが、実際には、多くの PHP フレームワークのコア実装の考え方はこれに似ています。一つ

一部のフレームワークでは、開発者にとって便利なツールが提供されています。私自身も PHP フレームワークを実装したいと考えており、フレームワークの開発からさらに学ぶことができればと考えています。 PHP の設計アイデアと手法。

Controller.php

「Model.php」をインクルードします;
'View.php' を含める;

クラス コントローラー {
プライベート $model = '';
プライベート $view = '';

パブリック関数Controller(){
$ this->モデル $this->view = new View();
}

パブリック関数 doAction( $method = 'defaultMethod', $params = array() ){
if( empty($method) ){
$this->defaultMethod();
}else if(method_exists($this, $method) ){
call_user_func(array($this, $method), $params);
}その他{
$this->nonexisting_method();
}
}

パブリック関数 link_page($name = ''){
$links = $this->model->getLinks();
$this->view->display($links);

$result = $this->model->getResult($name);
$this->view->display($result);
}

パブリック関数defaultMethod(){
$this->br();
echo "これがデフォルトの方法です。 ";
}

パブリック関数 noneexisting_method(){
$this->br();
echo "これは存在しないメソッドです。 ";
}

パブリック関数 br(){
echo "
";
}
}

$controller = 新しいコントローラー();
$controller->doAction('link_page', 'b');
$controller->doAction();

Model.php

コード
クラスモデル {
プライベート $database = array(
"a" => "こんにちは",
"b" => "はい、よくやった",
"c" => "さようなら"、
);

//@TODO データベースに接続します

// クエリを実行して結果を取得します
パブリック関数 getResult($name){
if( empty($name) ){
FALSE を返す;
}

If( in_array($name, array_keys( $this->database ) ) ){
return $this->database[$name];
}
}

パブリック関数 getLinks(){
        $links = "リンク A ";
        $links.= "リンク B ";
        $links.= "リンク C ";
       
        $links を返す;
    }
}

View.php


クラスビュー {
   
    パブリック関数表示($output){
// ob_start();
       
        echo $output;
    }
   
}



声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。