0
我知道这个问题多次询问,但几乎所有的答案都告诉save in db
或$this->config->set_item
。安装时更新代码点火器配置文件
但是这些答案不适用于我。我没有制作一个网站,而是一个开源项目,并且为非技术人员开发安装脚本,这将在安装过程中为用户设置每一件事情。为此,我需要在安装过程中用用户特定的设置更新配置文件,并在稍后形成管理面板(如果用户需要)。
显然保存在数据库中并不适用,因为我甚至需要通过安装脚本在配置文件中写入数据库凭据。 $this->config->set_item
也不适用,因为它只设置当前会话,我想永久设置它。
现在我正在创建配置文件模板和更新变量的想法。达到要求是否正确?再次出现另一个问题,如果用户从管理面板更改某些设置(例如数据库凭证),更改将不会立即反映出来。有没有解决方法或更好的解决方案?
感谢您的回复@ToxaBes。这将解决安装过程中的问题,因为安装脚本将是一个简单的PHP文件,不会依赖于CI。但是,你能提出关于第二部分的任何想法吗?我如何从管理面板更改配置值,这基本上是一个CI控制器?如果我应用相同的逻辑,新值将不会立即反映在CI中? –
是的,你想从管理面板改变它,你可以使用相同的逻辑。要立即应用更改,您可以将index.php中的ENVIRONMENT选项设置为“开发”(〜第21行)。这意味着什么没有缓存将被使用。如果您使用另一种缓存机制,则可以在更改像以下这样的somrthing配置后清理缓存:http://ellislab.com/codeigniter/user-guide/libraries/caching.html – ToxaBes
请注意,如果您使用PDO进行数据库连接并更改数据库配置文件,则应关闭并打开新的PDO连接。 – ToxaBes