CakePHP:重用模型,控制器,配置,但不重用视图和路由

时间:2009-11-25 07:56:00

标签: php cakephp code-reuse

我们的网站将按如下方式运作:

  • 有一个中心网站www.example.org,每个人都可以注册,更改信息,管理他们的“名片”。
  • 此外,每个人都有companyname.example.org。在这里,用户可以根据他们在主站点中更改的信息发布一个简单的站点。

此网站正在CakePHP上构建。我想知道这是一个很好的设置。在进行一些谷歌搜索后,为控制器和模型创建一个单独的目录似乎很常见,但在这种情况下,我想真正共享所有代码,路由和视图除外。

是否可以根据域名更改路由。这对CakePHP来说是否合适?我宁愿找到最佳实践,而不是“做”工作的解决方案。

谢谢!

3 个答案:

答案 0 :(得分:1)

使用this tutorial

解决

答案 1 :(得分:1)

在我的脑海中,CakePHP中的路由引擎没有域的概念,所以你理论上可以做的是使用Apache重写将路由例如/ company1 / post / 1映射到company1.example.com/post/1

Prefixing in routes是可能的,因为我以前用它来制作一个多语言网站,例如/ en / blog,/ es / blog等,所以这只是在路线中加上公司名称前缀的情况。 / p>

答案 2 :(得分:1)

您要找的是themes

CakePHP 1.3有neat implementation,但1.2的效果差不多。

在AppController中,您需要在这些行中添加一些东西,以根据主机加载不同的主题:

$mapThemes = array('company.example.com' => 'theme-1', 'store.example.com' => 'theme-shopping');
$this->theme = $mapThemes[env('SERVER_NAME')];

当然,可能性是无穷无尽的。您可以通过让每个用户定义多个主题等来从数据库加载$mapThemes。但这是一般的想法,我认为是Cake的做事方式。