我正在使用CodeIgniter 2.1.1并使用两个环境构建网站 - 生产和测试。基本上,在开始时,两个环境都具有相同的程序逻辑。但现在有几个修改。
我们的想法是共享生产环境和测试环境的控制器和模型,但对这两种环境有不同的看法。
我已经设置了WAMP,在WWW目录中有两个单独的文件夹:一个用于测试,另一个用于生产。每个文件夹下都有控制器,模型,视图等。 CI被恰当地指向并且设置了基本URL。
我的问题是,当我在Web浏览器中输入URL来调用测试环境的控制器时,它应该重定向并调用生产环境的控制器。这可能吗?
答案 0 :(得分:1)
不要重定向。是否包含该文件。
假设你有这个文件结构:
www-root
|-production
| |-application
| | |-controllers
| | |-etc.
| |-etc.
|
|-test
| |-application
| | |-controllers
| | |-etc.
| |-etc.
|
在两个环境中创建具有完全相同名称的文件。我们的例子中我们会说controller.php
。在生产环境中,进行编码。在您的测试环境中,请包含此行,并且只包含以下行:
<?php include '../../../production/application/controllers/controller.php';
这应该将文件从生产环境拉到测试环境中。只要确保你的硬编码任何链接使它们相对而不是绝对。这样,当它进入您的测试环境时,它会引用您的测试资产,而不是您的生产资产。
这是未经测试的,因为我现在无法访问我的CI安装。让我知道结果如何。
答案 1 :(得分:0)
我建议您最终设置某种类型的版本控制,例如Git。您可以在测试时编辑环境并将更改推送到生产环境。
要回答您的问题,您可以通过设置符号链接在两个不同的应用之间共享模型和控制器。我已经在linux中完成了它,但在Windows中它应该是相同的。所以,假设您希望实际文件位于测试应用程序中。将所有php文件放在测试应用程序的控制器和模型目录中。而不是在生产应用程序中创建控制器和模型目录,只需创建符号链接到测试应用程序的相应目录。