2017-05-23 8 views
1

私は既にCodeigniter Routing - Using it too much?を読みました。Codeigniter - コントローラとモデルの作成方法を理解するには?

しかし、私は自分のシステムで何台のコントローラとモデルを使用すべきか理解できません。

質問01

私はショッピングカートシステムを作成しています。

これまで3つのコントローラとモデルを作成しました。

  1. 製品のコントローラとモデル
  2. 管理コントローラとモデル
  3. ページのコントローラとモデル(私達に連絡し、私たちの程度のようなページを維持する)
  4. ユーザーコントローラとモデル

は、私が持っているべき

ショッピングカートのようなコントローラを使用するか、Product Controllerにこれらのコードを書き込む方が良いでしょうか?

ログインのために、ログインと呼ばれるコントローラを作成する必要がありますか、既に作成済みの管理者とユーザーコントローラを使用する必要がありますか?

また、この質問もあります。

製品モデルには、機能名display_product_list()があります。フロントエンドに製品を表示するために使用されます。

管理パネルにも商品リストを表示する必要があります。だから、私もdisplay_product_list() adminモデルで作成する必要がありますか?または、管理コントローラに製品モデルをロードする方が良いでしょうか?

質問

あなたが(CMSのように - ユーザーが製品、ユーザーなどを追加することができます意味)基本的なショッピングカートシステムを作成したい場合は02。 PayPalと代金引換の方法が利用可能であると仮定します。

作成するコントローラは何ですか?あなたが作るモデルは何ですか?

+0

アプリケーションの_entities_の周りにモデルとコントローラを作成する必要があります。 _product_はエンティティです。 _cart_はエンティティです。カートにはアイテムがあるので、_cart item_はエンティティです。これらのエンティティを表すモデルは、それらのアイテム、つまり '$ cart-> addItem($ item)'に対してアクションを実行するメソッドを持つべきです。このようにアプリケーションをビルドすると、それに従うのがずっと簡単です。 –

答えて

2

本当にアプリケーションのワークフローと、Webアプリケーションで実行する必要のある機能の種類によって異なります。

一般に、コントローラはWebアプリケーションのいくつかのモジュールとサブモジュールに依存しています。ショッピングカートシステムのがある

基本モジュール:

  1. カタログ管理
  2. ユーザーアカウント(マルチセラーシステムの顧客/管理者/販売者())
  3. 製品(/更新/削除を追加します/ブラウジング)
  4. はカート
  5. チェックアウトと支払い(オンライン/ COD)
  6. シップを管理しますpingの管理
  7. 受注管理(オーダーと追跡の配達)
  8. 解析&レポート世代
  9. SEO

そして、あなたの質問が**display_product_list()**に関するされています。この機能は、のために同じタスクを実行した場合

を管理者と顧客の両方が共通に使用できる機能の共通ヘルパーを作成します。

高度に体系化されたモジュール化されたモジュール性に従わなければならないというのは、階層的なMVCアーキテクチャーパターンに従うということです。

codeigniterでHMVCのthisを参照できます。

+0

答えをありがとう、私はこれを受け入れられた答えとしてマークします。しかし、時々私は他の人からより多くの答えを得るかもしれないので、ほんの数分を与える。私は共通のヘルパーを作成することができます。 ** display_product_list()について:データベースをヘルパーにロードし、ヘルパーにクエリを書くことをお勧めしますか?それは意味ですか** ** –

+0

はい、ヘルパーでDBのインスタンスを作成し、一般的に使用可能なクエリをそこに書くだけです。あなたのプロジェクトに簡単にアクセスできます。 – Nidhi

1

これはすべてあなたによって異なります。 私のシステムでは、コントローラー+すべてのコントローラーに対して1つのモデルがあります。 コントローラから多くのモデルを使用できることを思い出してください。

たとえば、コントローラPageControllerを使用している場合は、ex pages_modelsなどを読み込むことができます。

準備モジュールIon_Authをお勧めします。コントローラ/モデル/ビュー/言語はすべて内部にありますが、もちろんカスタマイズすることもできます。次をご覧ください: http://benedmunds.com/ion_auth/ https://github.com/benedmunds/CodeIgniter-Ion-Auth

広告。質問2: についてペイパルもモジュール/プラグインです: https://github.com/angelleye/paypal-codeigniter

希望に役立ちます。

関連する問題