Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 动态自定义CodeIgniter配置文件_Php_Arrays_Codeigniter_App Config - Fatal编程技术网

Php 动态自定义CodeIgniter配置文件

Php 动态自定义CodeIgniter配置文件,php,arrays,codeigniter,app-config,Php,Arrays,Codeigniter,App Config,我已经为我正在使用CodeIgniter构建的自定义CMS创建了一个自定义配置文件。我想在CMS中有一个“配置”页面,允许用户保存联系人电子邮件地址和其他变量 我想允许用户从admin CP动态设置这些配置变量,但我在这样做时遇到了麻烦 我在这里找到了这篇文章:它提出了一个类似的问题,但答案并不完全是我想要的 是否可以从控制器实时永久更新配置文件?现在,我的代码如下所示: $this->config->load('cms_config'); //load the

我已经为我正在使用CodeIgniter构建的自定义CMS创建了一个自定义配置文件。我想在CMS中有一个“配置”页面,允许用户保存联系人电子邮件地址和其他变量

我想允许用户从admin CP动态设置这些配置变量,但我在这样做时遇到了麻烦

我在这里找到了这篇文章:它提出了一个类似的问题,但答案并不完全是我想要的

是否可以从控制器实时永久更新配置文件?现在,我的代码如下所示:

     $this->config->load('cms_config');

    //load the initial view
    $this->data['subview'] = 'admin/setup/index';
    $this->load->view('admin/_layout_main', $this->data);

    //validate form
    if($this->form_validation->run('site_config') == TRUE) {

        $this->config->set_item('contact_email', $this->input->post('contact_email'));

    }

但这似乎根本没有更新文件。事实上,表单提交时似乎什么也没有发生。

这是我在使用自己的CMS时遇到的设计限制之一。配置在框架文件中。然后,我考虑使用第二个数据库(例如SQLite)来引导额外的配置数据,但随后又面临CI的第二个限制,因为它不能同时支持多个数据库。剩下的唯一选项是在不同的上下文中硬编辑配置文件本身,自定义文件或codeigniter钩子可以完成这项工作。或安装控制器(在pyro CMS中实现)

如果你想讨论更多的cms设计问题,让我知道,因为我正在从事类似的工作


祝你好运。

set\u item调用不会将配置项保留在请求之外。为什么不将首选项保存到数据库并在应用程序启动时在config对象中设置它们呢?我可以这样做,我试图避免将配置项保存在数据库中,而只是动态更新文件。将它们保存在数据库中需要额外的HTTP请求才能获取配置数据,这还不错,我只是想避免它。这是过早的优化,我怀疑额外的查询会破坏您的站点。您可以随时缓存它,因此只需查询一次(我通常使用可编辑的站点配置这样做),感谢使用挂钩的建议。我已经有点放弃了这个问题,因为我发现如果不大幅修改CI的核心,这基本上是不可能的。如果我遇到更多问题,我可以联系你寻求合作帮助吗?@TyBailey很高兴,只要在twitter、g+或facebook上保持联系即可