存储可编辑配置文件的最佳方法php

时间:2016-08-15 14:41:38

标签: php

简介

我开发了自己的框架,实际上一切都很好。但现在我有一个重要的功能来实现:配置文件。我现在做的很简单,我有这个结构:

system
application
index.php
config.php
.htaccess

根目录中的config.php文件具有框架的基本配置。在application文件夹中,我有另一个与我在框架上运行的php应用程序相关的配置文件。

文件的工作方式

实际上config.php文件夹中包含的application文件具有以下结构:

$config['LANGUAGE'] = defined('Config::Language') ? Config::LANGUAGE : 'english';

如何看到有一个数组$config来检查是否定义了一个特定的常量,而不是传递的值。请注意,Config是位于我的根目录中的config.php文件的类。

问题

现在这个机制出了问题。我需要通过无线方式更改一些配置,因此当我的应用程序被使用时。采用先前的配置,我从位于根目录的config.php文件中获取默认语言。但我可以通过我为编辑此值而创建的Settings类设置值。

Settings课程提供两种方法:getItemsetItem

实际上我已经使用会话来允许应用程序不丢失之前设置的配置:

Settings::setItem('LANGUAGE', 'italian');

此值存储为:

public static function setItem($name, $value)
{
    $_SESSION[$name] = $value;
}

这种工作方式我觉得不是最好的选择'因为我需要开发一个包含多个数据库的多租户应用程序,所以我需要存储敏感的凭据。并且$ _SESSION可能不是存储它的正确位置。

我注意到一些框架使用与Codeigniter相同的逻辑(两次config.php文件),但我记得我过去使用过CI,因为我存储了凭据:

$this->config->set_item('some item');

这是被保留的。那么,最好的方法是什么?

0 个答案:

没有答案