1

私の CodeIgniter Web アプリケーションは、次の 3 つの大きな部分に分割する必要があります。

  1. 管理者 - データの編集、削除、作成への無制限のアクセス
  2. ユーザー - 読み取り専用
  3. パートナー - データの編集への制限付きアクセス、削除不可、作成不可

すべてのパーツは互いに独立していますが、同じデータベースで動作します。

私の質問は - それらを引き離す最善の方法は何ですか?

2 つの方法が考えられます。

  1. コントローラ ディレクトリのサブフォルダ。良くない - Admin サブフォルダーを作成すると、この admin/events/controller_name.php や admin/places/controller_name.php のようなことはできません。そして、そのような分離がなければ、それは混乱するでしょう.
  2. サブドメイン (admin.sitename.com/、partner.sitename.com/) でアプリケーションを分離します。また、あまり良くありません-すべてのモデル(すべての場合で同じ)、ライブラリなどを複製する必要があります.

これを行うためのより良い方法はありますか?どういうわけか、さまざまなコントローラーのセットと 1 つのモデル/ライブラリーのセットのみを使用できれば、それは本当に素晴らしいことです。

4

2 に答える 2

1

それぞれに個別のコントローラーライブラリ。

  • ユーザー-通常のコントローラー
  • Admin-admin_controllerはコントローラーを拡張します
  • パートナー-partner_controllerはコントローラーを拡張します

ここを読んでください:http://philsturgeon.co.uk/blog/2010/02/CodeIgniter-Base-Classes-Keeping-it-DRY

コントローラとビューでフォルダを分離して、機能を分離してください。ルーティングを使用して、それぞれに到達する方法を並べ替えます。

于 2012-12-09T15:03:41.793 に答える
0

domain.com/admin/page/231

domain.com/user/page/231

domain.com/partner/page/231

ルーティングする必要さえありません-自動的に異なるクラスに移動します-同じモデルを共有できます。また、 IF $this->login_model->verifyAdmin() のようなメソッドを (おそらくモデルで) 呼び出して、クラス コンストラクターでログイン検証を行います。クラスコンストラクターで何かを変更する必要があります。

于 2012-12-09T20:01:40.810 に答える