我想知道是否有一种方法可以告诉codeigniter在不同的机器上部署时使用不同的自动加载/数据库配置?
目标是为配置文件提供2个单独的文件,因此它看起来像这样:
autoload and autoload-server
database and database-server
config and config-server
所以我可以将app部署到服务器而不用担心更改这些文件中的内容,因为codeigniter会自动使用...-服务器配置文件,而在dev机器上它将使用其他文件。
简单标记可以通过类似
的方法完成public function determineHost() {
$addr = $_SERVER['SERVER_ADDR'];
$name = $_SERVER['SERVER_NAME'];
if($addr == "remote ip" || $name == "remote host name") {
return "server";
}
if(($addr == "127.0.0.1" || $addr == "::1") || $name == "localhost") {
return "local";
}
}
我可以使用一种方法告诉codeigniter使用-server文件
public function confSelector() {
if("server"){
use server specific configuration
}
if("local") {
use local specific configuration
}
}
我有什么想法可以接近这个?或任何解决方案
答案 0 :(得分:0)
作为Codeigniter用户指南sugest。首先,您可以尝试将SetEnv CI_ENV production
放入htaccess中,具体取决于您放置的机器。 index.php中有一行检查运行的环境脚本:
define('ENVIRONMENT', isset($_SERVER['CI_ENV']) ? $_SERVER['CI_ENV'] : 'development');
然后在application / config目录下,您可以为某些环境创建目录,并将所需的配置文件放在那里。 F.E.应用/配置/生产/ autoload.php。 applications / config / development / database.php等。