我需要在PHP中存储大量的配置信息。
我考虑了以下几点……
// 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将此配置信息导入到我的应用程序中。
在存储配置数据方面,您的工作是什么?有关这方面的最佳实践是什么?
发布于 2009-02-27 03:57:33
我总是选择#2,只是确保除了所有者之外没有任何人可以访问它。它是Joomla、vBulletin、Gallery等众多PHP应用程序中最流行的方法。
第一种方法对我来说太混乱了(可读性),第三种方法太危险了。我从来没有考虑过Class方法,所以其他人可以为它提供他们的输入。但我想只要在类的使用上使用正确的访问就可以了。
示例..
define('EXAMPLE1', "test1"); // scenario 1
$example2 = "test2"; // scenario 2
function DealWithUserInput($input)
{
return eval($input);
}现在这个代码的例子真的很愚蠢,但这只是一个例子。根据用户可能尝试在其输入中使用的场景,考虑函数可能返回的内容。
场景2只有在函数内将其设为全局时才会导致问题。否则,它就超出了范围,无法访问。
发布于 2009-02-27 18:43:02
我想说的是,这在一定程度上取决于用户群。如果配置必须是非常用户友好的,或者用户必须有能力通过web等更改配置。
我对此使用Zend Config Ini,其他设置存储在SQL DB中。
发布于 2009-02-27 04:58:55
我通常使用第二种方法...在处理数据库连接时,我通常在请求开始时打开一个连接,然后在结束时关闭它。我有一个函数可以建立连接,然后从全局数组中删除用户名/密码(使用unset()函数),这样可以防止系统的其他部分访问“敏感的”mysql连接数据。
https://stackoverflow.com/questions/593440
复制相似问题