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)

推薦する

クラウド コンピューティング技術に関する 7 つの予測: 将来は「マルチクラウド」が主流になる

2010 年と 2011 年には、クラウド コンピューティングの輝かしい未来についての予測が話題にな...

ウェブ解析を行う際に必ず聞くべき10の質問(パート1):ウェブサイトの目標、戦略、ユーザーについて

半年近くブログを更新していませんが、理由の一つは忙しいから、もう一つは怠けているからです。仕事以外に...

WeChat、パブリックアカウントによる「いいねを集める」行為を禁止、4回の違反でアカウントを永久禁止

[概要] 発表では、公開アカウントが一度でも「いいね!」を集めたことが判明した場合、そのアカウントは...

cmivps: 3周年記念、100M帯域幅の香港CN2 VPSが50%オフ、香港+米国専用サーバーが10%オフ

cmivps は 3 周年記念キャンペーンを開始しました。香港 VPS (CN2+BGP) は 50...

ダブル11の電子商取引ライブストリーミングが「グループバトル」に突入

ダブル11の先行販売初日、各プラットフォームのトップキャスターによる商品持ち込み競争が熾烈となり、初...

詳細が成功と失敗を決める:ウェブサイトのランキング要因の詳細に関する調査

ウェブサイトのランキングについてはさまざまな意見があります。ウェブサイトが Baidu または Go...

Kubernetes クラスターを専門的に監視するにはどうすればよいでしょうか?

導入Kubernetes が実稼働環境でますます普及し複雑になるにつれて、安定性を確保するための課題...

ginernet - 年間 14 ドル / スペイン / 512 MB RAM / 5 GB SSD / 100 GB データ トラフィック

ginernet は、実は定評のある企業です。Host Cat の以前の紹介をご覧ください。データセ...

Bilibiliはどのようにして損益分岐点を達成できるのでしょうか?

ビリビリは3月3日、第4四半期および通期の業績発表を行った。第4四半期のMAUは2億7,170万人に...

ブラックフライデー - VPS - プロモーション概要

ただ、このクソサーバはいじくり回すのが大好きで、専用サーバと同じ感覚を得るためにお金をあまりかけたく...

JVMの原理と徹底的なチューニング

[[436050]] JVMとはJVM は、ユーザー モードで実行され、アプリケーションを通じてクロ...

推奨: anynode-128M メモリ/15G ハードディスク/250G トラフィック/年間 15 ドル

ここで、Host Cat はメモリの少ない VPS を推奨します。128M のメモリは、一部の人にと...

メイクアップサイトはどうすれば女性ユーザーの心を掴むことができるのでしょうか?

化粧品サイトの場合、ターゲットユーザーは全員女性ユーザーであり、女性向けサイトは商品価値が非常に高い...