例を通して PHP mvc 開発について学ぶ

WBOY
リリース: 2016-07-25 09:05:25
オリジナル
1069 人が閲覧しました
  1. require 'command/config.php';
  2. app::run($config)?>
  3. システム構成ファイルをロードし、エンジンを通じてシステム構成をロードします。
2. エンジン

public function run($config){ header("Content-type:text/html;charset=utf-8");

self::$config = $config ; //システム設定をロードします
self::copyright(); //システム環境
self::setsystem(); //システムパラメータを設定します
    self::incinfo(); !IN_WEB){exit('Web サイトはメンテナンスのため閉鎖されています。後でアクセスしてください!');}
  1. define('KEHENG_DEBUG') または define('KEHENG_DEBUG',true) // デバッグ モードにするかどうか
  2. self::setpath ( ); // システムパスを設定します
  3. self::getdatabase(); // データベースをテストします
  4. self::getRouteConfig(); // ルートを実行しますコントローラー
  5. }
  6. コードをコピー
  7. まず、構成ファイルを設定し、次にシステムパラメータをテストし、システムモジュールをロードし、構成されているWebサイト情報ファイルを取得し、Webサイトに必要なパスを設定し、システム構成でデータベースパラメータを指定し、ライブラリファイルをロードし、最後にリクエストアドレスを取得するルートをロードします。 上記の処理はあくまで私が学習して書いたものですが、キャッシュが不足しています。具体的にはどのようにキャッシュを設定すればよいのでしょうか。 ここでのデータベース テストは、構成されているデータベースのタイプに基づいて行われ、そのタイプのデータベースの操作用のカプセル化ファイルがロードされます。
  8. 3. ルーティング
以下は上記の最後の関数で、コントローラー ファイルをロードし、設定ファイルに従ってリクエスト メソッドを取得します。

/**路由 @link http://bbs.it-home.org*/public function getRouteConfig(){

$route_type=self::$config[route][url_type];
switch($route_type){
ケース 1:
    //echo $_SERVER['SCRIPT_NAME'].'
    ';
  1. $query_string=$_SERVER['QUERY_STRING'];
  2. //echo $_SERVER['REQUEST_URI']; ;br />';
  3. $urlstr=$_GET['コントローラー'];
  4. ケース 4:
  5. $url = end('/', $_SERVER["PHP_SELF"])); urlstr = strto lower(substr($url,0,-4));
  6. break;
  7. if(file_exists(Contr_DIR.'Controller.php')){
  8. require Contr_DIR.'Controller.php'; $urlstr;
  9. $template = self::$config['テンプレート'];
  10. controller::load($urlstr,$template);
  11. exit('コントローラファイルが存在しません'); }
  12. コードをコピー
  13. 4. コントローラー
  14. コントローラー ファイルも非常に単純で、ルートによって分析されたアドレスに基づいてモデル ファイルとビュー ファイルをロードするだけです。
  15. /**
  16. コントローラー
  17. @link http://bbs.it-home.org */クラスコントローラー{ public $obj; パブリック関数load($url,$template){ $config=$template; file_exists(Model_DIR.$url.'.model.php')){

    $views = 新しいビュー //echo Model_DIR.$url.'.model.php'; require Model_DIR.$url.'.model. php'; $temp = $config[$url][0]; if($temp!='' && $temp!=null && isset($temp)){

    if(file_exists(Templ_DIR.$temp) ){
    //echo Templ_DIR.$temp;
    require Templ_DIR.$temp;
      exit('ビュー ファイルが存在しません!'
    1. }
    2. }else{
    3. exit('このページ表示テンプレートを設定します! '.$temp);
    4. }else{
    5. exit('モデル ファイルが存在しません:'.$url.'.model.php'); }
    6. }
    7. }
    8. コードをコピー
    9. 注: モデル ファイルに出力する必要があるすべてのデータは、パッケージ内のビュー ファイル内のすべてのシステム パラメーターを含め、ビューなどのクラスを通じて出力されます。 この方法は不要なのかと思いますが、出力するデータをすべてカプセル化したいことがわかりました。 他のテンプレート ファイルもクラスでカプセル化されます。 MVC でキャッシュをどのように書くかについては、データを読み取るときに、キャッシュを読み取り、キャッシュが存在するかどうかを判断し、次にキャッシュを確立する必要があるかどうかを判断するという方向でよいでしょうか。 専門家の指導を期待して、スクリプト アカデミーの公式 QQ グループ (161228069) に参加してディスカッションに参加してください。
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!