2

次のプロジェクトで Kohana を使用して調査しています。サイトは、ユーザーが特定の権限を持つユーザー登録 (およびユーザー プロファイル) で構成されます。サイトには、管理者がユーザーをブロックしたり、投稿を削除したり、使用統計を確認したりできる管理セクションもあります。良い比較サイトはマルチユーザー ブログです。各ブロガーは、権限に応じてブログを投稿/編集/削除できます...例として。

まず、管理セクションを前面サイトから分離するためにコントローラー/ビュー構造をセットアップする方法がわかりません。私はKohana 3を使用しているので、次のようなコントローラー構造を考えていました: application/classes/controller/front (正面向き)... and application/classes/controller/admin (管理セクション用)。

または、Route クラスを使用してルートを設定できる可能性があることに気付いたので、"admin" ルートを設定できます。例: www.example.com/admin は、管理者のログオン画面につながります。www.example.com ---> フロントコントローラー。

同様に、「管理者」ビューとコントローラーを「正面」ビューとコントローラーから分離して、フォルダー構造に基づいて分割することはできますか? どんな助けでも大歓迎です。

ありがとうございました。

4

2 に答える 2

4

管理者用とフロントエンド用に別々のアプリケーション フォルダーを作成できます。

  • 応用
    • クラス
      • コントローラ
      • モデル
    • ビュー
  • admin_application
    • クラス
      • コントローラ
      • モデル
    • ビュー

このアプローチにより、各ブートストラップ環境を個別にカスタマイズでき、さまざまなファイルを適切に分離できます。ただし、この分離により、2 つのアプリ間で機能を共有できるように、共有コードをモジュールとして構造化する必要があります。もちろん、コードを複製することもできますが、それは今では間違っていますよね! ;)

もう 1 つの方法は、1 つのアプリケーションの各フォルダー内に admin サブフォルダーを配置することです。

  • 応用
    • クラス
      • コントローラ
        • 管理者
      • モデル
        • 管理者
    • ビュー
      • 管理者

このアプローチでは、ファイルが少し混ざり合ったままになり、(見方によっては) 保守が難しくなる可能性がありますが、実装するのは確かに簡単です。このアプローチの利点の 1 つは、/public_html/admin フォルダーを作成し、.htaccess を使用して保護できることです (通常の index.php ファイルのコピーも追加する必要があります)。次に、 http: //yourdomain.com/adminリクエストが行われるたびに、.htaccess ファイルが起動し、管理アプリケーションを Web サーバー レベルで保護します。さらに、リクエストはさまざまなフォルダー内の /admin サブフォルダーに自動的にルーティングされるため、ルーティングに関して行う作業も少なくなります。

どちらの状況でも、Kohana の (素晴らしい) ルーティング メカニズムを使用して、どのリクエストがどこに送信されたかを処理し、それぞれがアプリケーション アクセスの観点から見て安全です。ちなみに、KO3を使っていると思います...

編集
実際には、最初の方法も使用すると、管理アプリを .htaccess で保護できます。管理アプリを指すように /admin/index.php ファイルを調整するだけで済みます。

于 2010-05-14T21:37:02.367 に答える
1

私のアプローチは最初のアプローチと似ていますが、モジュールごとに管理コントローラーとフロントエンドコントローラーを作成します-すべての管理コントローラーは、beforeメソッドで認証を行う抽象管理コントローラーから継承します-またはこのようなもの。

于 2010-05-17T08:52:19.603 に答える