当前位置:  开发笔记 > 编程语言 > 正文

使用XML进行PHP配置时的最佳做法?

如何解决《使用XML进行PHP配置时的最佳做法?》经验,为你挑选了2个好方法。

我计划使用XML文档来存储我的下一个PHP项目的配置,格式类似于ASP.NET Web.Config文件.只有两个问题:

    无法提供给浏览器.

    必须在共享主机中可行.

我认为阻止它被提供的最好方法是将文件类型更改为PHP并添加以下注释:




....

这工作正常,但我不认为这是最好的解决方案.

有没有其他人使用XML来存储PHP项目的配置?什么是一些好的替代解决方案(如果没有定义常量,而不是在退出脚本的文件开头放置注释)?


更新:

更改了问题标题以更好地反映我正在寻找的内容.对于误导性的原始问题标题,我们深表歉意.使用XML进行配置不是问题.我在使用XML进行配置时要求最佳实践.请停止建议我使用数组或INI文件...

我希望配置文件尽可能简单易用,即使对于非php开发人员也是如此.我选择XML是因为它是语言中立的.我已经在使用SimpleXML来解析配置(部分).我也不担心编译或加快速度,因为可以使用memcached或其他实用程序来实现.

迄今为止最好的解决方案是:

将其移出Web根目录.

可能,但希望保持配置尽可能接近应用程序.

使用htaccess隐藏配置文件.

我不想冒险让某人破坏.htaccess文件,让配置文件暴露的风险.

我想听一下在应用程序中使用XML进行配置设置的经验,以及它们如何阻止配置文件的提供.



1> leepowers..:

这就是我通常对配置文件所做的事情 - 实际上,这是更基本的设置,通常它包含在自定义类中,它将多个配置文件组合到一个配置对象中:

config.php文件:

return array(
 'config1'=> 'config1value',
 'config2'=> 'config2value',
);

some_page.php:

$config= include('config.php');
if ($config['config1'])
 ...

配置作为PHP数组存储在PHP文件文件中,因此它由PHP引擎解析,永远不会返回到浏览器.(您可以通过将配置文件存储在Web根目录之外来进一步保护配置文件,设置mod_rewrite规则以防止提供配置文件/目录等)

将配置信息存储在XML文件中会增加将XML文件解析为每个请求的开销.高级配置数据的数据库存储很好,但也很昂贵(显然,数据库不会存储您的数据库连接信息,因此您仍然需要一些基本信息的配置解决方案).配置数据通常是非常静态的(很少写/每次请求读取),因此它通过memcached或其他缓存方案成熟缓存.



2> cletus..:

将它们放在文档根目录之外,或者如果您不能或不会将其限制为从外部访问,只需使用Apache mod_rewrite.例如:

RewriteEngine On
RewriteRule ^config.xml [R=404,L]

PHP有多个用于读/写XML的库,因此没有问题.如果它是相对简单(平坦)的数据,请考虑使用INI文件.PHP具有parse_ini_file()内置函数,.Net上的任何内容都将读取.ini文件.

推荐阅读
罗文彬2502852027
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有