0

我正在使用 CodeIgniter 2.1.1 并使用两个环境(生产和测试)构建网站。本质上,一开始,两种环境都具有相同的程序逻辑。但现在有一些修改要做。

这个想法是共享生产环境和测试环境的控制器和模型,但对两个环境有不同的视图。

我已经设置了 WAMP,在 WWW 目录中有两个单独的文件夹:一个用于测试,另一个用于生产。每个文件夹下都有控制器、模型、视图等。CI 被适当地指向并设置了基本 URL。

我的问题是,当我在 Web 浏览器中键入 URL 以调用测试环境的控制器时,它应该重定向并调用生产环境的控制器。那可能吗 ?

4

2 回答 2

1

不要让它重定向。让它包含文件。

假设你有这个文件结构:

www-root
 |-production
 |   |-application
 |   |   |-controllers
 |   |   |-etc.
 |   |-etc.
 |
 |-test
 |   |-application
 |   |   |-controllers
 |   |   |-etc.
 |   |-etc.
 |

在两个环境中创建具有完全相同名称的文件。我们会说controller.php我们的例子。在生产环境中,进行编码。在您的测试环境中,包括这一行并且仅包括这一行:

<?php include '../../../production/application/controllers/controller.php';

这应该将文件从您的生产环境拉到您的测试环境中。只要确保您是否对任何链接进行硬编码以使它们相对而不是绝对。这样,当它被拉入您的测试环境时,它将参考您的测试资产,而不是您的生产资产。

这是未经测试的,因为我现在无法访问我的 CI 安装。让我知道结果如何。

于 2012-06-26T21:16:04.757 回答
0

我建议您最终设置某种类型的版本控制,例如 Git。您可以编辑测试环境并将更改推送到生产环境。

要回答您的问题,您可以通过设置符号链接在两个不同的应用程序之间共享模型和控制器。我在linux中做过,但在windows中应该是一样的。因此,假设您希望实际文件位于测试应用程序中。将所有 php 文件放在测试应用的控制器和模型目录中。无需在生产应用程序中创建控制器和模型目录,只需创建指向测试应用程序各自目录的符号链接。

于 2012-06-26T20:43:03.510 回答