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)

推薦する

完全に無料の K8S 学習プラットフォーム: オンライン クラスター環境がクラウド ネイティブの旅をサポートします。

クラウド ネイティブへの道を歩み始めたい場合、Kubernetes を習得することは間違いなく不可欠...

新しいサイトの外部リンクを増やす方法の分析例

みなさんこんにちは。私は湖南省出身のキネスです。最近、編集者の新しいウェブサイトが19日間オンライン...

医療ソフトコピーライティングの5ステップ戦略

医療業界はインターネット上で話題になっています。言うまでもなく、ウェブマスターの世界では誰もが医療業...

企業がクラウド サーバーを好むのはなぜでしょうか?

クラウド コンピューティングは過去 10 年間で発展し始めました。インターネット+時代において、クラ...

ウェブサイトの信頼性を高める方法

ウェブマスターまたはウェブサイト運営者であれば、ウェブサイトの信頼性の概念を理解している必要がありま...

知的財産訴訟トップ10のうち4件のオンライン訴訟の背景

4月17日、「3Q」紛争の第二段階の裁判が広東省高級人民法院で始まった。近年、インターネット上での知...

民間病院のマーケティングにおける永遠のテーマ:付加価値サービス

今日、インターネットは急速に発展しており、多くの業界が新たな発展を模索しており、この発展が長期間継続...

#ブラックフライデー#: Ramnode、全VPSが25%オフ

ブラック フライデーが到来しました。ramnode はすべての VPS を 25% オフで提供してい...

国産CPUをベースにしたクラウドプラットフォーム上でコンテナ管理プラットフォームを構築するには? (パート1)

「ZTE事件」が拡大し続ける中、中国国民は自主管理可能な国産技術に大きな注目を寄せている。私の部署の...

優れたデザインはこうして生まれる: 優れたインターネット デザインに関する 100 のこと

文 | 楊英、王青、特別寄稿者胡雲、グラフィック | 李婷婷良いデザインには人々を魅了する力がありま...

Google Readerが終了、数十社がGoogleの残余を奪い合う

新浪テクノロジー 張南いまだに何百万人もの忠実なユーザーを抱える RSS リーダー ツールの Goo...

企業がSaaSコスト見積りで犯す4つの間違い

よく言われるように、悪魔は細部に宿ります。 SaaS 実装のコストを計算するときは、次のようなよくあ...

贅沢か奇跡か?黄太極の100億の思考

6ヶ月以内に売上高が1億に達し、年間売上高が100億に達しなければならない...パンケーキ販売者の黄...

iONcloud ダラスデータセンタークラウドサーバーの簡単な評価、評価データの共有

KTのコンピューター室にあるioncloudブランドのクラウドサーバーは最近ダラスのデータセンターが...

ザクロアルゴリズムアップグレードシグナル:SEOにはコピーライティングスキルが必要

最近、私の友人が転職を希望し、SEO 業界に興味を持ちました。どこで聞いたのかはわかりませんが、この...