Spyc PHP yaml config 载入读取类介绍

最近在复盘项目私有化部署的一些细节,当初为了让项目当中配置收敛可配置化,将配置存于yaml config文件当中,代码层读取yaml配置文件,然后界面上实现一个修改yaml配置文件功能,以实现项目参数配置化。

读取yaml配置文件,使用的是网上现成的方案,Spyc Class for PHP。

Spyc Class is a simple YAML Loader/dumper class for PHP. 是一款纯PHP编写的YAML加载/转储程序,给定一个YAML文件,Spyc将返回一个array。

源码下载:git://www.github.com/mustangostang/spyc.git

  • 读取简单示例:
<?php
require_once "spyc.php";
$data = Spyc::YAMLLoad('config.yaml');
?>

读取完之后,data的值为yaml config的结构化数组

  • 写入简单示例:
<?php
$file = "config.yaml";
$yaml_content = Spyc::YAMLDump($configs_exists);   //config_exists是用YAMLLoad读取回来的结构化数组
$file = fopen($file_name, 'w') or die("无法打开yaml文件!");;
fwrite($file, $yaml_content);
?>
  • 当然上面只是个简单的用法,实际项目实践中可以将它封装的更好的一点,比如完善读接口,修改yamlconfig配置的写节点都封装一下。传入xxx.yyy.zzz 自动读取yaml config xxx.yyy.zzz的值