1.4.1 MVCフレームワークパターンの実装(2)

1.4.1 MVCフレームワークパターンの実装(2)

1.4.1 MVCフレームワークパターンの実装(2)

ステップ 3: Controllers/DefaultController.php ファイルを作成し、親クラス CController を継承するコントローラー DefaultController を作成し、ホームページ管理メソッド actionIndex() を作成し、その中にモデル Article オブジェクトを作成し、find() メソッドを呼び出してデータを取得し、ビューをレンダリングして、データをビュー ページに出力します。

  1. <? php  
  2. '../framework/CController.php' が必要です。 //フレームワークファイルをインポートする
  3. '../models/Article.php' が必要です。 //記事テーブルモデルクラスファイルをインポートする
  4. クラス DefaultController は CController を拡張します
  5. {
  6. //ホームページ管理
  7. パブリック関数actionIndex()
  8. {
  9. //モデルオブジェクトを作成する
  10. $ article =新しい記事();
  11. //データを取得
  12. $結果= $article- > find();
  13. // ビューをレンダリングし、データをビューページに出力します
  14. $this- > render("../views/index.php",array("result"= > $result));
  15. }
  16. //リストページの管理
  17. パブリック関数 actionList(){}
  18. //コンテンツページ管理
  19. パブリック関数 actionArticle(){}
  20. }
  21. 新しいDefaultController()作成します
  22. $default_con- > actionIndex();
  23. ?>  

ステップ 4: views/index.php を作成します。ビュー ファイルで、クエリ結果変数 $result をループして、完全な HTML ページを生成します。

  1. <分割 クラス= "rightList2 marginbtm15" >  
  2. < UL  クラス= ulRightList1s >  
  3. <? php  
  4. foreach ($result を $row として)
  5. {
  6. ?>  
  7. < li > < A  タイトル= <? php echo $row["title"]; ?>   href = "#"  
  8. ターゲット= _blank > <? php echo $row["title"]; ?> </ A > </ li >  
  9. <? php  
  10. }
  11. ?>  
  12. </ UL >  
  13. </DIV>  

MVCフレームワークの実装プロセスを図1-5に示します。

1. ユーザーはコントローラーインスタンスオブジェクトを直接呼び出します。コントローラーはクラス内のアクション メソッド (action) を呼び出します。

2. コントローラーはモデルインスタンスオブジェクトを呼び出して、データベースからデータを読み取ります。

3. ビューをレンダリングします。

4. ビューはモデルの属性を読み取って表示します。

5. アクションはビューのレンダリングを完了し、ユーザーに返します。

このセクションでは、MVC フレームワーク モデルの実用的なアイデアに従い、コントローラー、モデル、ビューのコード分離を完了します。プログラムにアクセスするときは、コントローラー ディレクトリ内のコントローラー ファイルにアクセスする必要がありますが、これには明らかな設計上の欠陥があります。コントローラファイルが多すぎると、システム構造のアクセスが混乱し、その後のメンテナンスが困難、セキュリティが不十分などの一連の問題が発生し、システムの一元管理に不便が生じます。

次のセクションでは、ユーザーが要求した URL を解析し、コントローラー名とアクション メソッド名を抽出し、対応するコントローラー インスタンス オブジェクトを作成し、アクション メソッドを実行するためのエントリ ファイルを追加します。

気に入った友達はWeChatアカウントを追加できます:

51CTO 読書チャンネル QR コード


51CTO 読書チャンネル アクティビティ ディスカッション グループ: 365934973

<<:  1.2 フレームワークとは何か

>>:  1.4.2 エントリーファイル(1)

推薦する

劉強東の過去2年間のWeiboレビュー:「ビッグマウス」マーケティングに夢中

劉強東は8月15日、新浪微博の有名人影響力ランキングで1位になった。シナテクノロジー トレーシー20...

最も美しいウェブデザインは何ですか? 8つのウェブデザイントレンド

この記事は、ウェブサイトデザイン会社 weavora.com からの翻訳です。同社が考えるウェブデザ...

「SEOトレーニング」がわずか20日で百度ランキング1位に

昨日、私たちSEO担当者にとって最も衝撃的なことは何でしょうか?Robin(Liu Huanbin)...

クラウドアーキテクチャにおけるローコードおよびノー​​コード開発のリスク

著者 |デビッド・リンシカム企画 |ヤン・ジェンコードがどんなに単純であっても、上司はそれを書きませ...

食品・飲料業界の新ブランドレポート

今日は、誰もが毎日関わっているかもしれない大きなビジネス、食品と飲料の新しい全国的なトレンドについて...

Baidu百科事典のnofollow追加を無視する

百度百科事典は、拡張読書外部リンクを削除し、参考資料にnofollow属性を追加しました。さまざまな...

開発履歴分析:フラッシュセールサイトFabはなぜ人気があるのか​​?

ローンチ後5ヶ月でユーザー数が100万人を突破(Facebookはこの規模に達するのに10ヶ月かかり...

「中国SaaS」とは何ですか?出口はどこにあるのでしょうか?

[[205926]]これは、建国記念日の祝日に友人(エンタープライズ SaaS スタートアップのボス...

2012年の百度の最新アルゴリズムの分析

26日の夜、Baiduが大混乱に陥りました。皆さんもご存知のとおり、大小さまざまなウェブサイトがさま...

Docker プライベート イメージ リポジトリとは何ですか?

この記事はWeChatの公開アカウント「Invincible Coder」から転載したもので、著者は...

#ブラックフライデー#: 1qcloud-VPS 30% オフ/onAPP クラウド/1g メモリ/30g SSD/10T トラフィック

1qcloud のブラックフライデー プロモーション情報:割引コード BLACK70 ですべての V...

2024年に注目すべきエッジコンピューティングの5つのトレンド

エッジ コンピューティングにより、レイテンシが短縮され、全体的なパフォーマンスが向上します。 Mar...

Docker の紹介とインストール、10 分間の入門ガイド

1. Docker とは何ですか?なぜDockerなのかショッピング モールを開発していて、ラップト...

「SARSが保定に出現」という噂を流したウェブマスターは、法律に従って2年間の労働教養刑を宣告された。

保定市公安網によると、2012年2月26日、保定市公安局新市区支局は徹底的な調査を行った後、法に基づ...