首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在PHP中存储配置变量的最佳方式是什么?

在PHP中存储配置变量的最佳方式是什么?
EN

Stack Overflow用户
提问于 2009-02-27 03:47:58
回答 4查看 10.6K关注 0票数 25

我需要在PHP中存储大量的配置信息。

我考虑了以下几点……

代码语言:javascript
复制
// Doesn't seem right.
$mysqlPass = 'password'; 

// Seems slightly better.
$config = array(
     'mysql_pass' => 'password'
);

// Seems dangerous having this data accessible by anything. but it can't be
// changed via this method.
define('MYSQL_PASSWORD', 'password'); 

// Don't know if this is such a good idea.
class Config
{
    const static MYSQL_PASSWORD = 'password';
}     

到目前为止,这就是我所想的一切。我打算使用require /config.inc.php将此配置信息导入到我的应用程序中。

在存储配置数据方面,您的工作是什么?有关这方面的最佳实践是什么?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-02-27 03:57:33

我总是选择#2,只是确保除了所有者之外没有任何人可以访问它。它是Joomla、vBulletin、Gallery等众多PHP应用程序中最流行的方法。

第一种方法对我来说太混乱了(可读性),第三种方法太危险了。我从来没有考虑过Class方法,所以其他人可以为它提供他们的输入。但我想只要在类的使用上使用正确的访问就可以了。

示例..

代码语言:javascript
复制
define('EXAMPLE1', "test1"); // scenario 1
$example2 = "test2"; // scenario 2

function DealWithUserInput($input)
{
   return eval($input);
}

现在这个代码的例子真的很愚蠢,但这只是一个例子。根据用户可能尝试在其输入中使用的场景,考虑函数可能返回的内容。

场景2只有在函数内将其设为全局时才会导致问题。否则,它就超出了范围,无法访问。

票数 7
EN

Stack Overflow用户

发布于 2009-02-27 18:43:02

我想说的是,这在一定程度上取决于用户群。如果配置必须是非常用户友好的,或者用户必须有能力通过web等更改配置。

我对此使用Zend Config Ini,其他设置存储在SQL DB中。

票数 4
EN

Stack Overflow用户

发布于 2009-02-27 04:58:55

我通常使用第二种方法...在处理数据库连接时,我通常在请求开始时打开一个连接,然后在结束时关闭它。我有一个函数可以建立连接,然后从全局数组中删除用户名/密码(使用unset()函数),这样可以防止系统的其他部分访问“敏感的”mysql连接数据。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/593440

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档