代码之家  ›  专栏  ›  技术社区  ›  Evert

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

  •  1
  • Evert  · 技术社区  · 15 年前

    我们的网站将工作如下:

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

    这个网站是建立在cakephp上的。我想知道这是一个什么样的好安排。在进行了一些谷歌搜索之后,为控制器和模型创建一个单独的目录以供重用似乎很常见,但在这种情况下,我希望真正共享所有代码,路由和视图除外。

    是否可以基于域名更改路由。这是否被认为是“适当的”cakephp在所有。我更愿意找到最佳实践方案,而不是“做”工作的解决方案。

    谢谢!

    3 回复  |  直到 15 年前
        1
  •  1
  •   Evert    15 年前

    用解决 this tutorial

        2
  •  1
  •   Ricardo Cabral    15 年前

    首先,cakephp中的路由引擎没有域概念,因此理论上您可以使用apache rewrite将路由(例如/company1/post/1)映射到company1.example.com/post/1。

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

        3
  •  1
  •   JadB    15 年前

    你要找的是 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 通过让每个用户定义多个主题等,从数据库中获取信息,但这是一般的想法,我认为这是一种简单的方式。

    推荐文章