<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>http://jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>http://jackxiang.com/post//</link>
<title><![CDATA[我们一起学习认识YAML，想做配置文件比ini文件解析规范相对好一些]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[WEB2.0]]></category>
<pubDate>Mon, 01 Mar 2010 05:31:29 +0000</pubDate> 
<guid>http://jackxiang.com/post//</guid> 
<description>
<![CDATA[ 
	<div class="code">&lt;?php<br/>&nbsp;&nbsp;&nbsp;&nbsp;require_once &quot;spyc.php&quot;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;$content = @file_get_contents(&quot;./actInit.yaml&quot;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;$yaml = Spyc::YAMLLoad($content);<br/>&nbsp;&nbsp;&nbsp;&nbsp;print_r( $yaml );<br/><br/>?&gt;</div><div class="code">house:<br/>&nbsp;&nbsp; family: &#123; name: Doe, parents: &#91;John, Jane&#93;, children: &#91;Paul, Mark, Simone&#93; &#125;<br/>&nbsp;&nbsp; address: &#123; number: 34, street: Main Street, city: Nowheretown, zipcode: 12345 &#125;<br/><br/><br/>Array<br/>(<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#91;house&#93; =&gt; Array<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#91;family&#93; =&gt; Array<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#91;name&#93; =&gt; Doe<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#91;parents&#93; =&gt; Array<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#91;0&#93; =&gt; John<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#91;1&#93; =&gt; Jane<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)<br/> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#91;children&#93; =&gt; Array<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#91;0&#93; =&gt; Paul<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#91;1&#93; =&gt; Mark<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#91;2&#93; =&gt; Simone<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)<br/> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)<br/> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#91;address&#93; =&gt; Array<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#91;number&#93; =&gt; 34<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#91;street&#93; =&gt; Main Street<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#91;city&#93; =&gt; Nowheretown<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#91;zipcode&#93; =&gt; 12345<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)<br/> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)<br/> <br/>)</div><br/><br/><br/>　YAML <br/><br/>　　来自YAML官方网站 (http://www.yaml.org/) 的定义: YAML是一种直观的能够被电脑识别的的数据数据序列化格式，它并且容易被人类阅读，容易与脚本语言交互的。换种说法，YAML是一种非常简单的类似于XML的数据描述语言，语法比XML简单很多。他在描述可以被转化成数组或者hash的数据是非常有用，例如:<br/><br/>$house = array(<br/>&nbsp;&nbsp;&#039;family&#039; =&gt; array(<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#039;name&#039;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&gt; &#039;Doe&#039;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#039;parents&#039;&nbsp;&nbsp; =&gt; array(&#039;John&#039;, &#039;Jane&#039;),<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#039;children&#039; =&gt; array(&#039;Paul&#039;, &#039;Mark&#039;, &#039;Simone&#039;)<br/>&nbsp;&nbsp;),<br/>&nbsp;&nbsp;&#039;address&#039; =&gt; array(<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#039;number&#039;&nbsp;&nbsp;&nbsp;&nbsp;=&gt; 34,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#039;street&#039;&nbsp;&nbsp;&nbsp;&nbsp;=&gt; &#039;Main Street&#039;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#039;city&#039;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&gt; &#039;Nowheretown&#039;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#039;zipcode&#039;&nbsp;&nbsp; =&gt; &#039;12345&#039;<br/>&nbsp;&nbsp;)<br/>);<br/>解析这个YAML将会自动创建下面的PHP数组:<br/><br/>house:<br/>&nbsp;&nbsp; family:<br/>&nbsp;&nbsp;&nbsp;&nbsp; name:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Doe<br/>&nbsp;&nbsp;&nbsp;&nbsp; parents:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - John<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Jane<br/>&nbsp;&nbsp;&nbsp;&nbsp; children:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Paul<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Mark<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Simone<br/>&nbsp;&nbsp; address:<br/>&nbsp;&nbsp;&nbsp;&nbsp; number: 34<br/>&nbsp;&nbsp;&nbsp;&nbsp; street: Main Street<br/>&nbsp;&nbsp;&nbsp;&nbsp; city: Nowheretown<br/>&nbsp;&nbsp;&nbsp;&nbsp; zipcode: 12345<br/>在YAML里面，结构通过缩进来表示，连续的项目通过减号&quot;-&quot;来表示，map结构里面的key/value对用冒号&quot;:&quot;来分隔。YAML也有用来描述好几行相同结构的数据的缩写语法，数组用&#039;[]&#039;包括起来，hash用&#039;&#123;&#125;&#039;来包括。因此，前面的这个YAML可以缩写成这样:<br/><br/>house:<br/>&nbsp;&nbsp; family: &#123; name: Doe, parents: [John, Jane], children: [Paul, Mark, Simone] &#125;<br/>&nbsp;&nbsp; address: &#123; number: 34, street: Main Street, city: Nowheretown, zipcode: 12345 &#125;<br/>YAML是&quot;Yet Another Markup Language(另一种标记语言)&quot;的缩写，读音&quot;yamel&quot;,或者&quot;雅梅尔&quot;。这种格式大约是2001年出现的，目前为止已经有多种语言的YAML解析器。<br/><br/>　　提示 YAML格式的详细规格可以在YAML官方网站http://www.yaml.org/找到。<br/><br/>　　如你所见，写YAML要比XML快得多(不需要关闭标签或者引号)，并且比&#039;.ini&#039;文件功能更强(ini文件不支持层次)。所以symfony选择YAML作为配置信息的首选格式。在本书你会看到很多YAML文件，不过它很直观你用不着更深入地研究YAML。<br/>以下两种写法完全一样：<br/><br/><div class="code">&lt;?php<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;require_once &quot;spyc.php&quot;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;$content = @file_get_contents(&quot;./actInit.yaml&quot;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;$yaml = Spyc::YAMLLoad($content);<br/>&nbsp;&nbsp;&nbsp;&nbsp;print_r( $yaml );<br/><br/>?&gt;<br/><br/>&lt;?php<br/>&nbsp;&nbsp;&nbsp;&nbsp;require_once &quot;spyc.php&quot;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;$filename = &quot;./actInit.yaml&quot;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;$yaml = Spyc::YAMLLoad($filename);<br/>&nbsp;&nbsp;&nbsp;&nbsp;print_r( $yaml );<br/><br/>?&gt;</div>
]]>
</description>
</item><item>
<link>http://jackxiang.com/post//#blogcomment</link>
<title><![CDATA[[评论] 我们一起学习认识YAML，想做配置文件比ini文件解析规范相对好一些]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://jackxiang.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>