PHP の MVC にはバグがあります (1)。最大の問題はログ システムです。この導入が完了したら、修正されたプログラムのソース コードをすべてパッケージ化して、ここでは何も変更しません。 , application.class.php:
PHP コード:--------------------------- でコントローラー インスタンスを作成する方法を見てみましょう。 -------------------------------------------------- -- --
/**
* 実行関数
*
* このタイプの唯一の外部インターフェイス
**/
public function run()
{
$this->parsePath();
$this->checkSecurity($this->module, $this-> ;action );
1. $controller = new $this->controllerClassName();
2. $controller->{$this->action}();
$this->writeLog($this- > モジュール、$this-> アクション); ----- -------------------------------------- ---
アプリケーション クラスはインスタンスの後にあります。呼び出すことができる唯一の関数は、ユーザーの URL リクエストに基づいて必要なコントローラー クラス名を分析し、このクラス (上記の 1 のマーク) をインスタンス化し、次に取得したアクション名を呼び出します。 URL (上記の 2 のマーク) の場所)、
これは簡単な例です:
URL: http://localhost/?module=news&action=showList
アプリケーションはこの URL を分析して、controllerClassName=news、action=showList を取得します。これをコントローラー クラスのファイル名を含めて処理し (Application->getControllerFile() で実行)、ニュース コントローラー クラスをインスタンス化し (1 でマーク)、そのアクション showList (2 でマーク) を呼び出します。 newsController.php の内容を見てください:
========================================== ==== ===================
PHP コード:---------------------- --- --------------------------------------------------- --- ---
/**
* ファイル名: newsController.php
* 紹介: ニュース コントロール クラス
*
* @author: 先輩
* @Email: Teacherli@163.com
* @version $Id$
* @copyright 2004-10-26
**/
include_once ("./controller/comm/controller.class.php");
include_once ("./model/news/newsModel. php") ;
クラス NewsController はController
を拡張します
http://www.bkjia.com/PHPjc/631836.html
www.bkjia.com
true