3

私はオブジェクト指向の PHP を見始めています。今日まで、私は手続き型アプローチで多数の PHP システムを開発してきましたが、前進する時が来たと思います。

私が現在取り組んでいるプロジェクトの 1 つは、WordPress のグレードとハンディキャップの計算プラグインです。つまり、プラグインは、アップロードされた CSV ファイルから卓球選手の結果を取得し、ハンディキャップ トーナメントの成績を計算します。

私の卓球クラブのウェブサイトは WP を使用しているため、WordPress を使用しています。それが機能する場合、他のクラブ/リーグに提供できる可能性があり、彼らもプラグインをインストールして、本格的なグレードとハンディキャップにアクセスできるようになります。システム。

WordPress 以外では、MVC パターンを使用して OO-PHP でそのようなシステムを開発できると確信していますおそらく次のようになります。

コントローラ

  1. モデルのインスタンスを作成する
  2. 「ナビゲーション」、つまり GET/POST リクエストを処理し、それに応じてどのページ テンプレートを表示するかを決定します。

モデル

  1. ファイルのアップロードと保存に対処する
  2. データベースからの情報の更新と選択
  3. プレイヤーの成績を計算するためのホスト メカニズム

意見

  1. 管理ページ、つまり設定とファイルのアップロード
  2. 選手の成績とハンディキャップを表示する成績ページ
  3. 特定のユーザーが個々のプレイヤーの結果を確認できる結果ページ (主にデバッグ目的)

過去 30 分ほどでこのパターンを学んだだけなので、間違っている場合は訂正してください。ただし、私の論理では、このシステムを作成するための真の MVC アプローチです。

ただし、WordPress プラグインを方程式に組み込むと、次の質問に苦戦し始めます。

  • WP 以外のシステムでは、CSS スタイルは単にビューの PHP ページに含まれ、それをincludeコントローラーに組み込みます。ただし、WordPress では、そのようには機能しません。CSS スタイルをそのように使用することはできませんenqueue。CSS ファイルをエンキューする関数はどこでホストしますか?
  • 誰かが最初にプラグインをアクティブ化するとき、WordPress 関数を使用して適切なデータベース テーブルを作成する必要があります。これは、 a hook、つまり aから実行する必要がありますregister_activation_hook。これらの関数をどこでホストしますか? それらを Controller に入れるのは理にかなっているように思えますが、同時に、 Controller はできるだけきれいで読みやすいように保つ必要があるのではないかと思います。
  • 上記の質問と同様に、コマンドadd_menu_pageadd_submenu_pageコマンドを使用して WordPress 管理ページを作成する必要もあります。これらの機能はどこでホストしますか?

これらの質問はすべて同じ答えを持っている可能性があり、それがセマンティクスにすぎないことはわかっていますが、オブジェクト指向 PHP の MVC パターンを真に理解できるように、早い段階でこれを理解しようとしています。

前もって感謝します、

4

2 に答える 2

1

MVC を学習するためのより良い場所を探しているなら、これが最適です。

于 2013-02-27T06:29:40.397 に答える
0

私がこれを正しく理解していることを願っています。

  1. CSS については説明できません。レイアウト ファイル (ビュー) で定義したものを保持しているだけです。

  2. 重いロジックをサービス (外部クラス) に入れ、コントローラーで実行することができます。コントローラーを「薄く」保ちます

  3. 前のものと同様。メニューをモデル (厳密に DB 関連である必要はありませんが、XML/JSON/配列データである必要はありません) として保存し、コントローラーで追加/削除アクションを呼び出すことができます。

于 2013-02-27T00:50:51.160 に答える