CakePHP One Core,One App,One Database,Multiple Domains&多个主题

时间:2013-07-26 16:54:15

标签: cakephp cakephp-2.1

我是CakePHP世界的新成员,并且只创建/关注了博客教程,并将其扩展到用户。我一直在阅读2.0书籍,以便更熟悉该框架。

在我转到CakePHP之前,我有几个问题。

目前,我开发了一个多域/多主题CMS系统,它是程序化PHP。通过这样做,我已经能够在具有多个域和主题的单个数据库上创建单个系统。

我拿$_SERVER['SERVER_NAME']并在“品牌”表格中查找,然后返回brand_id和主题目录。然后,我将所有SQL查询后缀为“and brand_id = X”。

我希望转移到Cake,因为目前的平台在规模和复杂性方面变得势不可挡。

所以简而言之......

我可以使用One Core,One App,One Database创建一个可以为多个域和主题提供服务的应用程序吗?

我会使用$_SERVER['SERVER_NAME']查找域名并返回brand_id和主题吗?

我真的不想拥有多个数据库,好像我们有大量客户在所有数据库中进行更改可能会耗费时间。

我当然不希望拥有多个控制器和多个模型,但在某些情况下,如果客户有特定要求,我们会想要一个定制的视图。

任何有关让我入门的基本配置的指导都会很棒。每个模型都会“属于”一个“品牌”吗?你会如何“服务”一个品牌?

Name: Brand1 Domain: www.brand1.com ThemeDir: Brand1
Name: Brand2 Domain: www.brand2.com ThemeDir: Brand2

1 个答案:

答案 0 :(得分:0)

我有类似的情况,我使用通配符子域。我通过做各种事情来实现这一目标。

  1. 在我的bootstrap文件中,我正在我的子域中读取并为cakePHP缓存分配一个值。在我的情况下,我打电话:

    Configure::write('SubdomainHTTP', $myvalue);

  2. 这将是您的域名。

    1. 我在routes.php文件中加载了一个名为subdomainRoute.php的文件名。此文件检查以确保我的案例中的路由或子域存在于数据库中。最后通过使用Configure :: write编写子域名和主题名称,如步骤1。

      App::uses('SubdomainRoute', 'Routes');

    2. 我把它粘在一起,在我的AppController.php中我读了我在第2步中写的信息。特别是主题名称并使用它设置:

      $this->theme = $yourtheme;

    3. 这应该允许您拥有不同的域名主题。鉴于您必须拥有一个数据库来保存域名列表和主题名称。