从数据库而不是配置文件中读取 CodeIgniter 配置值

Zar*_*Zar 4 database config codeigniter

您可能知道,当您使用 CI 创建一个新项目时,您必须在 config/config.php 中手动输入基本 url、加密密钥。我正在努力克服这个问题,因此正在寻找一种方法来从数据库中读取这些值- 使客户的安装和整个设置时间大大减少

客户无法编辑 PHP 文件的变量,但很有可能在某些指导下输入基本 URL 并由系统自动填写加密密钥。

有什么办法可以做到这一点吗?

Rob*_*lin 5

当然!添加一个钩子 - post_controller并通过该文件设置这些配置值。

config/hooks.php

$hook['pre_controller'][] = array(  'class'    => 'MyOtherClass',
                                    'function' => 'MyOtherfunction',
                                    'filename' => 'Myotherclass.php',
                                    'filepath' => 'hooks');
Run Code Online (Sandbox Code Playgroud)

hooks/myotherclass.php

<?

class MyOtherClass {

    function MyOtherfunction() {

        $CI =& get_instance();

        $row = $CI->db->get_where('configs', array('site_id' => 1))->row();

        $CI->config->set_item('base_url', $row->base_url);

    }

}
Run Code Online (Sandbox Code Playgroud)

基本上,您在任何控制器或类似控制器中使用这些值之前设置这些值。