构建可配置PHP应用程序的正确方式
d[1]]."\n"; } else { $nf .= $l; } } fclose( $fh ); copy( $this->configFile, $this->configFile.''.bak'' ); $fh = fopen( $this->configFile, ''w'' ); fwrite( $fh, $nf ); fclose( $fh ); } } $c = new Configuration(); 新的 save 函数巧妙地操作 config.txt。我并没有仅用更新过的配置项重写文件(这样会移除掉注释),而是读取了这个文件并灵活地重写了 $items 数组中的内容。这样的话,就保留了文件中的注释。 在命令行运行该脚本并输出文本配置文件中的内容,能够看到下列输出。 清单 10. 保存函数输出 % php text3.php 原始的 config.txt 文件现在被新值更新了。 XML 配置文件 尽管文本文件易于阅读及编辑,但却不如 XML 文件流行。另外,XML 有众多适用的编辑器,这些编辑器能够理解标记、特殊符号转义等等。所以配置文件的 XML 版本会是什么样的呢?清单 11 显示了 XML 格式的配置文件。 清单 11. config.xml <?xml version="1.0"?> 清单 12 显示了使用 XML 来装载配置设置的 Configuration 类的更新版。 清单 12. xml1.php <?php $c = new Configuration(); 看起来 XML 还有另一个好处:代码比文本版的代码更为简洁、容易。为保存这个 XML,需要另一个版本的 save 函数,将结果保存为 XML 格式,而不是文本格式。 清单 13. xml2.php ... $r = $doc->createElement( "config" ); foreach( $this->items as $k => $v ) copy( $this->configFile, $this->configFile.''.bak'' ); $doc->save( $this->configFile ); 这段代码创建了一个新的 XML 文档对象模型(Document Object Model ,DOM),然后将 $items 数组中的所有数据都保存到这个模型中。完成这些以后,使用 save 方法将 XML 保存为一个文件。 使用数据库 最后的替代方式是使用一个数据库保存配置元素的值。那首先要用一个简单的模式来存储配置数据。下面是一个简单的模式。 清单 14. schema.sql DROP TABLE IF EXISTS settings; 这要求进行一些基于应用程序需求的调整。例如,如果想让配置元素按照每个用户进行存储,就需要添加用户 ID 作为额外的 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |