包 core

包 mvc

包 orm

包 form

包 database

包 helper

包 cache

包 webcontrols

包 behavior

包 exception

包 debug

类 - Helper_YAML

helper
类层次 class Helper_YAML
版本 $Id: yaml.php 2392 2009-04-05 13:54:14Z lonestone $

Helper_YAML 提供 yaml 文档的解析和输出服务

公共方法

隐藏继承的方法

方法描述定义于
loadCached() 载入缓存的 YAML 解析结果,如果缓存失效,则重新解析并生成缓存 Helper_YAML
load() 载入 YAML 文件,返回分析结果 Helper_YAML
parse() 分析 YAML 字符串,返回分析结果 Helper_YAML
dump() 将 PHP 数组(或者实现了 ArrayAccess 接口的对象)输出为字符串 Helper_YAML

方法详细说明

loadCached() 方法

public static array loadCached($filename, $replace, $cache_backend)

$filename string 要解析的 yaml 文件名
$replace array 对于 YAML 内容要进行自动替换的字符串对
$cache_backend string 要使用的缓存后端
{return} array 解析结果

载入缓存的 YAML 解析结果,如果缓存失效,则重新解析并生成缓存

用法:

$arr = Helper_YAML::loadCached($filename);

$replace 参数的用法参考 load() 方法。


load() 方法

public static array load($filename, $replace)

$filename string 要解析的 yaml 文件名
$replace array 对于 YAML 内容要进行自动替换的字符串对
{return} array 解析结果

载入 YAML 文件,返回分析结果

关于 YAML 的详细信息,请参考 http://www.yaml.org

$arr = Helper_YAML::load('my_data.yaml.php');

如果指定了 $replace 参数,解析过程中会使用 $replace 指定的内容去替换 YAML 文件的内容。

$replace = array
(
    '%TITLE%' => 'application title',
    '%ADMIN_USER%' => 'administrator',
);
$data = Helper_YAML::load('my_data.yaml.php');
// my_data.yaml.php 中包含的
// %TITLE% 和 %ADMIN_USER% 字符串会被替换为指定的内容

注意: 为了安全起见,不要将 yaml 文件置于浏览器能够访问的目录中。

如果无法满足前面的条件,应该将 YAML 文件的扩展名设置为 .yaml.php, 并且在每一个 YAML 文件开头添加“exit()”。

例如:

# <?php exit(); ?>
invoice: 34843
date   : 2001-01-23
bill-to: &id001
......

这样可以确保即便浏览器直接访问该 .yaml.php 文件,也无法看到内容。

书写 yaml 文件时,不要插入多余的空行。 完整的书写规范请参考 http://www.yaml.org


parse() 方法

public static array parse($input, $replace)

$input string 要分析的 YAML 字符串
$replace array 对于 YAML 内容要进行自动替换的字符串对
{return} array 解析结果

分析 YAML 字符串,返回分析结果


dump() 方法

public static string dump($data, $indent)

$data array 要输出的数组
$indent int 缩进空格数
{return} string 输出结果

将 PHP 数组(或者实现了 ArrayAccess 接口的对象)输出为字符串