现在我正在基于this tutorial在同一服务器上的多个站点之间共享Kohana :: Core。我想更进一步,除了配置和内容之外,共享一切(控制器,视图,模型)。可能吗?我在数据库配置中使用'table_prefix'字段来区分每个站点的表。我想基于url参数动态加载数据库配置 - 我认为它应该可以工作。
我正在考虑将路线改为:
Route::set('default', '(<site>(/<controller>(/<action>(/<parametr>)))))')
->defaults(array(
'controller' => 'mainpage',
'action' => 'index',
));
但目前我不知道在哪个地方以及如何检查和加载适当的配置。
答案 0 :(得分:0)
有一些方法可以做到这一点,
单步:构建一个Controller_Base类 把那个方法放在()
之前在此方法中,使用<site>
抓取$this->request->param('site')
参数。
现在您可以在switch case或<site>
param中加载配置文件
通过将每个站点的配置名称设置为<site>
现在在每个控制器中你都应该扩展Controller_Base put before()方法 在这个方法中使用parent :: before()
希望我帮助你
答案 1 :(得分:0)
我找到了最好,最优雅的解决方案。我将我的应用程序移动到模块目录。这很容易。有必要通过删除除路由之外的所有内容将bootstrap.php更改为init.php。现在,我可以使用标准多站点配置多次使用所有控制器,模型和视图。