Поправьте меня, если я ошибаюсь, вам нужно иметь все "ядро" и "библиотека" для всех моделей и 3 разных "модуля" 1) site1
2) site2
3) admin
Если это правильно, вы можете сделать следующее:
Индекс файла.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');
}
Добавьте все необходимые среды и все ваши сайты
Файл config / 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"
И создайте файл плагина.
class Your_Application_Plugin_ModuleSelector extends Zend_Controller_Plugin_Abstract {
public function preDispatch(Zend_Controller_Request_Abstract $request) {
...
$request->setModuleName($getVarFromApp);
}
...
}
Вам необходимо получить имя модуля из application.ini
, затем вам нужно иметь папку:
/ module / site1
/ module / site2
/ module / admin
Администратор сайта может получить доступ с обоих сайтов, с URL-адреса www.site1.com/admin
Пример контроллера из ADMIN
<?php
class Admin_IndexController extends Zend_Controller_Action
{
private $params;
function init()
{
}
public function indexAction()
{
}
}
Пример контроллера из site1 или site2
<?php
class IndexController extends Zend_Controller_Action
{
private $params;
function init()
{
}
public function indexAction()
{
}
}
Надеюсь, это работает, не проверяйте,но в основном это идея о том, что делать.Любой вопрос, дайте мне знать