は私が間違っている場合、あなたはすべての「コア」とすべてのモデルの「ライブラリ」、および3種類の「モジュール」 1を持っている必要があり、私を修正してください)SITE1
2)サイト2
3)管理者
それが正しい場合は、次のことを行うことができます。
ファイルインデックス.PHPこのようなものを追加します。
// Define application environment
$environments = array(
'localhost' => 'local'
'www.site1.com' => 'site1',
'www.site2.com' => 'site2',
);
$host = isset($_SERVER['SERVER_NAME']) ? $_SERVER['SERVER_NAME'] : null;
if (isset($environments[$host])) {
defined('APPLICATION_ENV')
|| define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : $environments[$host]));
}else{
defined('APPLICATION_ENV','local');
}
すべての必要な環境とのapplication.ini
ファイルの設定は、/情報のすべての残りの部分で、このような何かを持っている必要がありますすべてのサイトを追加します。
; -----------------------------------------------------------------------
[production]
; -----------------------------------------------------------------------
resources.frontController.moduleDirectory[] = PUBLIC_PATH "/modules"
resources.frontController.plugins.moduleselector = "Your_Application_Plugin_ModuleSelector"
; -----------------------------------------------------------------------
[site1 : production]
; -----------------------------------------------------------------------
settings.module.name = "site1"
; -----------------------------------------------------------------------
[site2 : production]
; -----------------------------------------------------------------------
settings.module.name = "site2"
そして、プラグインファイルを作成します。
/モジュール/ SITE1
/モジュール/ SITE2
: class Your_Application_Plugin_ModuleSelector extends Zend_Controller_Plugin_Abstract {
public function preDispatch(Zend_Controller_Request_Abstract $request) {
...
$request->setModuleName($getVarFromApp);
}
...
}
あなたは、あなたはフォルダを持っている必要はapplication.ini
からモジュール名を取得する必要があります
/module/admin
管理サイトは、両方のサイトからアクセスできます。fr om URL www.site1。コントローラのCOM /管理
例ADMINからコントローラの
<?php
class Admin_IndexController extends Zend_Controller_Action
{
private $params;
function init()
{
}
public function indexAction()
{
}
}
例SITE1またはサイト2
<?php
class IndexController extends Zend_Controller_Action
{
private $params;
function init()
{
}
public function indexAction()
{
}
}
から私はこの作品を願って、チェックしますが、基本的には何の考えではありません行う。任意の質問は私に知らせてください
私はあなたの最大の問題は、正しいURLを取得している可能性が高いと思う(私はルーティングに役立つ資格がない、または私は提案を提供する)。モジュール間のクラスの使用は問題ありません。私はモジュール間でフォームとモデルを日常的に使用しています。私は通常、デフォルトモデル/ dbtableディレクトリに自分のdbTableモデルをセットアップし、どこにでもそれらを共有します。正しいクラス名を呼び出すだけで、すべてが期待どおりに動作する傾向があります。いつものように、他の場所には適合しないし、共有する必要のあるコードにはライブラリがあります。 – RockyFord