Codeigniter - 根据计算机

时间:2016-09-01 18:10:22

标签: php codeigniter

我想知道是否有一种方法可以告诉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
    }
}

我有什么想法可以接近这个?或任何解决方案

1 个答案:

答案 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等。