2009-04-26 7 views
2

すべての大規模なアプリケーションには、ADMINセクションがあります。
ZFを使用していないときは、通常、管理者用のものを別のディレクトリに置いています(.htaccessベースの認証や2回目のログインなど)。これはまた、ファイルツリーの中でどのファイルが何であるかをかなり明白にします。ZFベースのアプリケーションに管理セクションを作成するベストプラクティス

どのように私はZFで同じデザインを達成できますか?または、管理セクションを作成するためのベストプラクティスがありますか?
ルータレベルで行うべきですか(URLに "admin"がある場合は、別のindex.php/bootstrapファイルを使用します)。
私は単純にすべての管理者のものですが、私はあまりにも多くを持っています。だから、私はいくつかの管理コントローラを通常のアプリケーションコントローラと並べて持っている。それは私のコントローラのディレクトリに混乱を招く - どのコントローラが管理者であり、どちらではない?

答えて

0

私は通常、管理システム全体のために、独自のコントローラとビューディレクトリと静的コンテンツ用のパブリックディレクトリを備えた別個の「アプリケーション」フォルダを作成します。管理者は、通常、アクセス管理などの重要な要件について異なる要件を持ち、実際のアプリケーションとは数多くの点で異なる場合があります。したがって、ソースコードを完全に分離することをお勧めします。しかし、ソースコードの中には共通するものもあります。例には、ライブラリフォルダとデータベースモデルが含まれます。

この方法では、管理ユーティリティをどこで使用できるかを決定する際の柔軟性が向上します。あなたは同じドメイン上のサブディレクトリにそれを置くためにapacheエイリアス指示を使用するか、別の仮想ホストに置くことができます。それはすべてあなた次第です。

0

ZFでモジュールを使用してチェックアウトする必要があります。あなたは管理者以外のものを含むためのデフォルトのモジュールと管理用のすべてを含む管理モジュールを持つことができます。デフォルトモジュールを使用しても現在のURLは変更されず、管理モジュールのURLはserver.com/admin/controllername/actionname/paramsのようになります。これは、あなたのコントローラーがすべて同じ場所にあり、乱雑になるのを解決します。また、Zend_Controller_Actionをサブクラス化してモデル内にMaster_Controllerを作成して共有機能を維持することもできます。次に、共有管理機能用のマスターコントローラーを拡張し、管理モジュール内のすべてのコントローラーをサブクラスにするようにAdmin_Controllerを作成してください。同様の構造を使用して、他のモジュールで管理されていない機能を共有することもできます。

Zend Framework - modular directory structure

4

私はmoduleとしてそれをやりました。 Brett Benderが提供するモジュールリンクの他に、私が提供したリンクの12.3.2.2節を参照してください。

関連する問題