【问题标题】:Codeigniter multi app same controller/viewCodeigniter 多应用程序相同的控制器/视图
【发布时间】:2018-09-01 09:25:14
【问题描述】:

简单的问题:

是否可以创建一个共享相同控制器/模型/视图但使用不同 config.php 和 database.php 文件的多 codeigniter 应用程序?

我想将我的应用程序安装在不同的文件夹中,但控制器/模型/视图只使用一个文件夹。通过这种方式,如果我想更改控制器文件(例如),我只做一次,而不是在每个应用程序上。

感谢您的帮助!

【问题讨论】:

标签: php codeigniter share


【解决方案1】:

config.php 和 database.php 是普通的 PHP 文件,你可以在里面放任何代码!

一种方法是在index.php 文件中识别您所在的站点,并定义一个可在整个站点中使用的全局常量。

例如:

if ($_SERVER['SERVER_NAME' === 'my-domain-1') define('DOMAIN', 'domain-1');
elseif ($_SERVER['SERVER_NAME' === 'my-domain-2') define('DOMAIN', 'domain-2');
else die("Unknown domain");

然后,在您的config.php 中,您可以针对要根据站点更改的每个配置选项:

$config['encryption_key'] = (DOMAIN === 'domain-1') ? 'a-strong-encryption-key-1' : 
                            (DOMAIN === 'domain-2') ? 'a-strong-encryption-key-2' : 
                            '??';

对于database.php

$active_group = (DOMAIN === 'domain-1') ? 'db-domain-1' : 
                (DOMAIN === 'domain-2') ? 'db-domain-2' : 
                '??';

$db['db-domain-1'] = array(
    'dsn'   => '',
    'hostname' => 'domain-1-db-host',
    'username' => 'root',
    'password' => '',
    'database' => 'domain-1-db',
    'dbdriver' => 'mysqli',
    'dbprefix' => '',
    'pconnect' => FALSE,
    'db_debug' => TRUE,
    'cache_on' => FALSE,
    'cachedir' => 'application/cache',
    'char_set' => 'utf8',
    'dbcollat' => 'utf8_general_ci',
    'swap_pre' => '',
    'encrypt' => FALSE,
    'compress' => FALSE,
    'stricton' => TRUE,
    'failover' => array(),
    'save_queries' => TRUE
);

$db['db-domain-2'] = array(
    'dsn'   => '',
    'hostname' => 'domain-2-db-host',
    'username' => 'root',
    'password' => '',
    'database' => 'domain-2-db',
    'dbdriver' => 'mysqli',
    'dbprefix' => '',
    'pconnect' => FALSE,
    'db_debug' => TRUE,
    'cache_on' => FALSE,
    'cachedir' => 'application/cache',
    'char_set' => 'utf8',
    'dbcollat' => 'utf8_general_ci',
    'swap_pre' => '',
    'encrypt' => FALSE,
    'compress' => FALSE,
    'stricton' => TRUE,
    'failover' => array(),
    'save_queries' => TRUE
);

这实际上是我用于开发和生产服务器的内容(使用 ENVIRONMENT 常量)。

【讨论】:

    猜你喜欢
    • 2017-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-08
    • 2018-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多