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)

推薦する

zji: 618 の超お得、香港\日本 (物理マシン) サーバーは 550 元から、さらにチャージすると 100 元になる

zjiは618年中旬イベントを開始しました:(1)日本大阪の独立サーバー価格が550元値下げされ、月...

AWS スポットインスタンスを使用してクラウドコンピューティングのコストを 90% 削減する方法

企業の IT チームの中には、スポットインスタンスを利用するのではなく、容量を予約することを選択する...

Netflix、Amazon の注文ブラッシングなどに適した、海外のネイティブ IP を持つ VPS をいくつか収集します。

海外のVPSやクラウドサーバーは多いですが、ネイティブIPは少ないです。コスト面を考慮し、放送アナウ...

キーワードランキングを2年間トップ5に維持した経験の共有

2009 年に最初の Web サイトを作成してから 5 年が経ち、さまざまな規模の Web サイトを...

クラウドにも独自のネットワークが必要です。 SDNとVPCの存在

クラウド コンピューティングを水資源に例えると、クラウド ネットワークは蛇口のようなものです。クラウ...

Suningがインターネット企業になることに対する自信と確信は何ですか?

最近、蘇寧は改めて自社の立場を表明し、自社はいわゆる伝統的なチャネル商人でも、厳密な意味での電子商取...

混乱があるときのみ発展があります。慎重に考え、ウェブサイト開発のすべてのステップをうまく進めてください。

A5のウェブサイトでは毎日多くの著者がウェブサイト構築の経験を共有していますが、彼らの言葉には自信と...

ホストメモリの年間支払い額11.99ドルの米国VPSの簡単な評価。ホストメモリがどのように機能するかを確認するための実際のテストデータを共有します。

hostmemバックエンドは国産のルービックキューブシステムを採用した新しいプラットフォームに切り替...

Google が検索結果ページをアップグレード: ナレッジグラフを強調

改訂された Google 検索結果ページでは、左側のサイドバーが検索ボックスの下に移動され、右側のナ...

コンテンツマーケティングを行う際に考慮すべきことは何ですか?

最近では、コンテンツ マーケティングで利益を上げている企業が増えており、コンテンツ マーケティングを...

高小双:船員募集ウェブサイトの大量のリンク切れを修正する方法

私は会社の船員研修ウェブサイトを引き継いで以来、長い間それを観察、分析し、多くの問題を発見しました。...

検索戦争第1ラウンド:百度の小さな敗北は勝利と見なされ、360の小さな勝利は敗北と見なされる

Huxiu Note: 過去半月にわたって、検索業界は混乱状態にありました。工業情報化部などの政府部...

パンデミック後のエッジコンピューティングの未来

IoT、5G、AR/VR の台頭により、ネットワークのエッジにコンピューティングを導入する必要性が高...

中小企業はマーケティングスキルをどのように習得すべきでしょうか?

現在、多くの中小企業や新興企業が大企業のマーケティング手法を真似しています。大企業がそうしているのを...

マルチクラウドプラットフォーム環境統合ソリューション

詳細に入る前に、「クラウド統合アーキテクチャとは何ですか?」という質問に答えましょう。クラウド統合ア...