【问题标题】:Codeigniter with different domains具有不同域的 Codeigniter
【发布时间】:2011-09-01 12:03:55
【问题描述】:

我正在尝试在代码点火器框架内使用相同代码结构的不同域的代码点火器。

所有领域的库、模型和数据库应该相同,唯一的区别应该是使用的控制器和视图。

我最好有类似这样的设置:

controllers/domain1.com/index.php
controllers/domain2.com/index.php
controllers/domain3.com/index.php

有没有人有修改代码点火器以这种方式工作的经验?

【问题讨论】:

    标签: php codeigniter


    【解决方案1】:

    查看手册中的loader class 页面并向下滚动到Application "Packages" 部分。将此与运行Multiple Applications 的部分结合起来,您应该能够运行多个站点,具有相同的模型和配置,并避免重复您的代码。

    【讨论】:

    • 感谢您的工作几乎完美。只有两个小问题 1)我需要在每个控制器的 __construct 中调用“add_package_path”,是否有自动加载包和 2)无法移动 config 文件夹,有什么方法可以使每个站点都使用相同的配置文件夹?
    • 1) 如此处所述创建您自己的控制器 - codeigniter.com/user_guide/general/core_classes.html - 并使用该构造自动加载应用程序包。 2) 我不确定我理解你所说的“移动配置文件夹”是什么意思?
    • 我正在做类似的事情,我自动加载包的方法是将包添加到配置文件夹的自动加载文件中。至于 config 文件夹,我不知道有一种方法可以让不同的应用程序共享一个 config 文件夹(我不确定这是否是个好主意),但我所做的只是在每个应用程序中都有一个 config 文件夹。跨度>
    【解决方案2】:

    有一个手册页描述了如何实现这一点。咨询Running Multiple Applications with one CodeIgniter Installation

    唯一的区别是您似乎还必须复制模型/配置。

    【讨论】:

      【解决方案3】:

      根据我的经验,我需要在不同的子域上构建系统,因为默认域具有现有的基本 codeigniter,并且它不是为处理多个域或子域而设计的。

      我的部分目标是:

      • 在 dir config、core、helpers 和 library 中使用现有的共享核心对象。
      • 和现有的公共 dir 文件,但分开 images/mysubdomain/* 和其他 dirs/subdomain/*

      这就是我所做的。

      • 我已经在同一个配置目录中修改了 router.php,并在 mysubdomain/default if subdomain===true 内的单独目录中设置了一个条件来路由默认控制器
      • 即。 /controllers/mysubdomain/default.php
      • 使用单独的基本控制器扩展 /controllers/mysubdomain/ 内的主控制器。
      • 然后在 mysubdomain 中的所有控制器中定义 mysubdomain(即 models/mysubdomain/* 和 views/mysubdomain/*。

      这完全可以满足我的需要。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-03-10
        • 1970-01-01
        • 2019-01-03
        • 1970-01-01
        • 2015-12-24
        相关资源
        最近更新 更多