最近私の代理店で同じ問題を調べており、現在テストしているソリューションには、次のアプリ フォルダー構造が含まれます。
app/
default/
controllers/
models, etc
ecommerce/
controllers/
models, etc
lib/
S24/
ComponentCode.php
modules/
ecommerce/
admin/
controllers/
models, etc
default/
controllers/
models, etc
data, public web, temp, other ZF folders
共通コンポーネント コードは に保存されlib
、モジュラー アプリケーションは に保存されmodules
、個々のクライアント Web サイト コードは に保存されapp
ます。
およびフォルダーは共通であり、各プロジェクトで同じです (これらのフォルダーの外部に SVN を作成します) lib/S24
。modules/ecommerce
app
はモジュール ディレクトリであるため、フォルダdefault
とecommerce
フォルダは ZF 内にモジュールを作成します。app/default
デフォルト (つまり、モジュールなし) コントローラ用です。app/ecommerce
内のコントローラーを単純に拡張する一連のコントローラーが含まれますmodules/ecommerce/default/controllers
。
その後、必要に応じて の機能を拡張しapp/ecommerce/controllers
たり、新しい機能を追加したりできます。
モジュール管理システムを同じに保ち、複数の管理システム (www.domain.com/admin/ecommerce や www.domain.com/admin/user などの URL) もサポートしたいので、モジュラー管理システムをmodules
フォルダ。その後、任意のカスタム管理ページを に追加できますapp/admin/controllers
。
// Add Controller folder
$front->addControllerDirectory('/path/to/modules/ecommerce/admin/controllers', 'ecommerceAdmin');
// Add route
$router->addRoute(
'ecommerceAdmin',
new Zend_Controller_Router_Route('admin/ecommerce/:controller/:action',
array('module' => 'ecommerceAdmin',
'controller' => 'index',
'action' => 'index'))
);
私が言うように、私は現在これをテストしていますが、あなた自身のシステムにいくつかのアイデアを与えることを願っています. これが完全に安定したら、このトピックに関するブログ記事を書きたいと思っています。