如果我错了,请纠正我,您需要拥有所有模型的所有“核心”和“库”,以及 3 个不同的“模块”
1) 站点1
2) 站点2
3) 管理员
如果正确,您可以执行以下操作。
File Index.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
/模块/管理员
管理站点可以从两个站点访问,从 URL www.site1.com/admin
来自 ADMIN 的控制器示例
<?php
class Admin_IndexController extends Zend_Controller_Action
{
private $params;
function init()
{
}
public function indexAction()
{
}
}
站点 1 或站点 2 的控制器示例
<?php
class IndexController extends Zend_Controller_Action
{
private $params;
function init()
{
}
public function indexAction()
{
}
}
我希望这行得通,不要检查,但基本上是做什么的想法。有什么问题告诉我