首先,让我解释一下我的情况:我有两个域,两个网站,相同的布局,但不同的内容和不同的目的。我想做的事:
在这两个系统之间共享:
- 功能、布局模板和管理。
有什么不同吗:
- 视图中的页面,一些控制器。
我考虑的选项:
选项1
- 使两个站点之一成为插件
- 检查主机名:$_SERVER['HTTP_HOST'],并在核心或引导程序中指明是否应使用插件。
像这样的东西:
if ($_SERVER['HTTP_HOST'] == 'www.example1.com') {
Configure::write('defaultplugin', 'example1');
} else {
Configure::write('defaultplugin', null);
}
这可能吗
选项 2
一个虚拟地址,但这也很难实现,因为我的路由是这样配置的:
Router::connect("/{$prefix}/:language/:plugin", $indexParams, $shortParams);
也许我应该将这条路线更改为:
Router::connect("/{$prefix}/:plugin/:language", $indexParams, $shortParams);
但是,如果我之前的建议可行,我愿意这样做,因为我不知道最后一个解决方案是否能在某些层面上正常工作。
选项 3
使用此处描述的方法:http ://rickguyer.com/cakephp-one-core-many-apps/
所以我会创建 3 个应用程序文件夹:example1、example2、common。但我不知道是否可以让 app 文件夹包含 example1 和 common 或 example2 和 common 的内容。
选项 4
Stackoverflow 上有人提出了一个很棒的想法。
提前致谢!