Yaconf – 一个高性能的配置管理扩展

首先说一下这个鸟哥随手根据项目需求编写的一个php扩展,主要是解决目前php程序读取配置的性能提升。

目前主流的php框架,其配置项基本是以数组或json格式写在php config文件中的。这样会造成一个项目可能会包括数个配置文件,这样程序去读取配置文件会消耗很大的性能。其次这些配置文件跟项目文件放在一起,可能会有一些安全隐患。Yaconf就是解决这些问题的一个工具。

它的性能优势有如下:

1. 它使用单独的一个配置目录(在yaconf.directory指定), 不和代码在一起.

2. 它在PHP启动的时候, 处理所有的要处理的配置, 然后这些配置就会常驻内存, 随着PHP的生命周期存亡. 避免了每次请求的时候解析配置文件.

3. 所有的配置内容都是immutable的, 这就可以借助于Fork的COW, 降低内存占用, 并且在访问配置的时候, 几乎不需要任何的内存Copy, 也不会有无谓的引用计数增减

4. 最重要的, 配置目录和代码分离以后, 可以借助一个配置管理后台, 来实现配置的统一化管理.

5. 它支持(对于非ZTS)配置变更重新加载, 也就是说配置如果有变化(建议更改配置一定使用mv, 不要使用cp), 它会reload, 不需要重启(检测的频率由yaconf.check_delay控制).

6. 它支持丰富的配置类型, 包括字符串, 数组, 分节, 分节继承, 并且还可以在配置中直接写PHP的常量和环境变量等.

7. 最重要的是, 它很简单.

Yaconf 只提供了俩个方法,

  • mixed Yaconf::get(string $name, mixed $default = NULL)
  • bool Yaconf::has(string $name)

Yaconf的配置项

  • yaconf.directory
  • yaconf.check_delay

配置的格式

Yaconf采用ini文件作为配置文件, 这是因为我一直觉得ini是最适合做配置文件的, key-value格式, 清晰可读.

鸟哥博客原文:http://www.laruence.com/2015/06/12/3051.html

小伙伴们赶快去试试吧!

发表评论

电子邮件地址不会被公开。 必填项已用*标注