ホームページ  >  記事  >  バックエンド開発  >  php のコントローラー クラスのサンプル チュートリアル mvc_PHP チュートリアル

php のコントローラー クラスのサンプル チュートリアル mvc_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 17:13:131041ブラウズ

この記事では、MVC のコントローラー クラスのチュートリアルについて説明します。前の 2 つのセクションから、プログラムが単一のエントリ ファイルのルート クラスを通じて唯一のモジュール、コントローラー、およびアクションを決定し、それを実行することがわかりました。終わり

コードは次のとおりです コードをコピー

$route->run();

/**

* 対応する MCA を実行します

*

*/

プライベート関数実行 ()

{

$filePath = APPLICATION_PATH.'/controller/'.$this->_moudle.'/'.$this->_contoller.'.inc.php';

$isNo = 0;

if(file_exists($filePath))

{

「$filePath」を含めます;

$controller_tp = $this->_contoller.'コントローラー';

$controller = 新しい $controller_tp;

if (method_exists($controller,$this->_action.'Action'))

{

$acion_tmp = $this->_action.'アクション';

$controller->$acion_tmp();

}その他}

{

$isNo = 1;

}

}その他}

{

$isNo = 1;

}

if ($isNo)

{

$filePath = APPLICATION_PATH.'/controller/default/index.inc.php';

$this->_moudle = $this->_default['モジュール'];

$this->_controller = $this->_default['controller'];

$this->_action = $this->_default['action'];

($this->_moudle != $this->_default['module']) && include "$filePath";

$controller = 新しいindexController;

$controller->indexAction();

}

}


関連する「Controller」ファイルが存在する場合に実行されます

コードは次のとおりです コードをコピー

「$filePath」を含める;

$controller_tp = $this->_contoller.'コントローラー';

$controller = 新しい $controller_tp;

上記の 3 行のコードは、決定されたコントローラーに従って対応するファイルをインクルードし、対応するコントローラーをインスタンス化することを意味します。

コードは次のとおりです コードをコピー

$acion_tmp = $this->_action.'アクション';

$controller->$acion_tmp();

対応するアクションに従って、対応するアクションを実行します

すべてのコントローラー クラスは共通のコントローラー クラスを統合します。このレッスンでは、パブリック コントローラー クラスを分析します。

/**

* フロントエンドのパブリッククラスインターフェイス

* 公開部分コードを実装します

*/

/**

* このファイルはインデックス作成のみ可能です。 php には

が含まれています

*/

定義("WEB_AUTH") || 死ぬ("NO_AUTH");

/**

* メニュー設定ファイルが含まれています

*/

コードは次のとおりですコードをコピー
クラスコントローラー

{

公開 $tpl;

パブリック $controller;

public $body;//右メニュー

パブリック $_route ;

公開 $html_;

公開 $tpl_;

/*

* コンストラクター

*/

パブリック関数__construct()

{

$this->init();

}

/*

* 変数、トップメニュー、テンプレートを初期化します

*/

保護された関数 init()

{

グローバル $TPL,$route;

$this->tpl = $TPL;

$this->_route = $route;

}

/**

* テンプレート変数が渡されました

*/

保護された関数 diplayTpl()

{

$ this-> tpl-> assign( "body"、$ this-> body);

/*このコントローラーのテンプレートディレクトリを設定します*/

$this->controller ||$this->controller =$this->_route->getControllerName();

$this->tpl->assign("コントローラー",$this->コントローラー);

$this->tpl->display($this->layout);

}

/**

*スマートパッケージクラス

* @param string $name

* @param string $value

*/

パブリック関数 assign($name,$value)

{

$this->tpl->assign($name,$value);

}

/**

* 追加のテンプレートを表示します

* @param string $name

* @param string $value

*/

保護された関数displayOther($file)

{

$this->assign("otherTpl",TRUE);

$this->tpl->display($file);

}

/**

* 特定のMCAの本文テンプレートを表示します

* 0=>m 1=>c =>a

*/

保護された関数 getMcaBody($array)

{

return 'http://www.cnblogs.com/../'.$array[0].'/body/'.$array[1].'/'.$array[2];

}

/*

* デストラクター、ページを表示

*/

保護された関数 __destruct()

{

$this->tpl->tpl_vars['otherTpl'] || $this->diplayTpl();

}

/**

* 途中で退出してください

*/

保護された関数 _exit($msg = "")

{

$this->assign("otherTpl",TRUE);

死ね($msg);

}

/**

* $this->html_var=value を使用して変数に値を割り当てます

* $this->tpl_var=value を使用して変数に値を割り当てます

*/

保護された関数 __set($name,$value)

{

if(strto lower(substr($name,0,5)) == "html_" || strto lower(substr($name,0,4)) == "tpl_")

{

$this->assign(substr($name,5),$value);

}

}

}

?>

まずは見てください

コードは次のとおりです コードをコピー

保護された関数 __destruct()

{

$this->tpl->tpl_vars['otherTpl'] || $this->diplayTpl();

}

これは、すべてのコントローラー クラスのライフサイクルの最後に実行される関数です (詳細については、PHP マジック メソッドを検索してください)

このフレームワークは、この時間を使用してテンプレートを解析します。この利点は、コントローラーで関連するデータ処理が完了すると、プログラムの最後にテンプレートを呼び出すのではなく、関連するテンプレート (ビュー) が自動的に実行されることです。毎回

コードは次のとおりです コードをコピー

保護された関数 __set($name,$value)

{

if(strto lower(substr($name,0,5)) == "html_" || strto lower(substr($name,0,4)) == "tpl_")

{

$this->assign(substr($name,5),$value);

}

}

この関数は、プログラムが変数をテンプレートに渡す方法を簡略化します。smarty を例に挙げると、$tpl->assign(‘key’,$value);

を実行する必要があります。

テンプレートに変数を登録するには、この関数では $this->html_key=$value; だけが必要です (開発環境のプロンプト関数を使用して前に宣言します)。

コードは次のとおりですコードをコピー
公開 $html_;

公開 $tpl_;

http://www.bkjia.com/PHPjc/629229.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/629229.html技術記事この記事では、MVC のコントローラー クラスのチュートリアルについて説明します。前の 2 つのセクションを通じて、プログラムが単一のエントリ ファイルのルート クラスを通じて唯一の Modle、Controller、Action を決定し、最終的にはそれを決定することがわかりました。 .
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。