<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>骨头鱼的墓 &#187; Zend-Framework</title>
	<atom:link href="http://gonefish.info/blog/?feed=rss2&#038;cat=12" rel="self" type="application/rss+xml" />
	<link>http://gonefish.info/blog</link>
	<description>Changing Anytime</description>
	<lastBuildDate>Sat, 28 Aug 2010 13:43:12 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Zend Framework MVC流程图说明</title>
		<link>http://gonefish.info/blog/?p=169#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed</link>
		<comments>http://gonefish.info/blog/?p=169#comments</comments>
		<pubDate>Sun, 15 Feb 2009 16:04:59 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Zend-Framework]]></category>

		<guid isPermaLink="false">http://gonefish.cn/weblog/explain-zend-framework-mvc-flow/</guid>
		<description><![CDATA[这个图是ZF文档中的，7.2节的图。由于中文文档还没有翻译，所以先搞个图看看，这个图画的非常好，非常明朗。&#160;
我已经用不同的颜色标注了不同的部分。主要流程是绿色块，黄色部分是钩子，这种蓝色代表Request和Response对象，紫红色部分判断是否dispath完毕。基本方向就是：Request -&#62; Router -&#62; Dispatch -&#62; Send Response
更新：

&#160;
Zend_Controller架构详解
更详细的说明请参看http://gonefish.cn/?page_id=473

&#160;
&#160;
]]></description>
			<content:encoded><![CDATA[<p>这个图是ZF文档中的，7.2节的图。由于中文文档还没有翻译，所以先搞个图看看，这个图画的非常好，非常明朗。&nbsp;</p>
<p><span style="text-decoration: line-through;">我已经用不同的颜色标注了不同的部分。主要流程是绿色块，黄色部分是钩子，这种蓝色代表Request和Response对象，紫红色部分判断是否dispath完毕。基本方向就是：Request -&gt; Router -&gt; Dispatch -&gt; Send Response</span></p>
<p><strong>更新</strong>：</p>
<p><img src="http://www.lifefix.cn/static/attachments/article/7/ZF1.png" alt="" width="659" height="771" /></p>
<p>&nbsp;</p>
<h1><a title="Zend_Controller架构详解" href="http://www.lifefix.cn/article/Zend-Controller-Architecture/">Zend_Controller架构详解</a></h1>
<p><strong>更详细的说明请参看<a href="http://gonefish.cn/?page_id=473">http://gonefish.cn/?page_id=473</a></strong></p>
<p><strong><br /></strong></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://gonefish.info/blog/?feed=rss2&amp;p=169</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cake vs Solar vs Symfony vs Zend Framework</title>
		<link>http://gonefish.info/blog/?p=234#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed</link>
		<comments>http://gonefish.info/blog/?p=234#comments</comments>
		<pubDate>Fri, 13 Feb 2009 13:49:50 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Zend-Framework]]></category>

		<guid isPermaLink="false">http://gonefish.cn/weblog/cake-vs-solar-vs-symfony-vs-zend-framework/</guid>
		<description><![CDATA[今天在找ZendFramework资料的时候找到了一个网站，用apache branchmark对四个框架进行了测试。分别是：

Cake
Solar
Symfony
Zend Framework

结果是Solar每秒中处理请求最多，Zend Framework次之，后面则跟着Cake，Symfony。



ramework
avg
rel




solar-0.25.0
170.26
3.24


zend-0.6.0
131.91
2.51


cake-1.1.12
114.39
2.18


symfony-1.0.0beta2
67.18
1.28



由于该ZF版本是0.6版，而马上0.9版也就要发布，所以上面结果可参考一下。而且，作者在这些测试代码放在google code中，有兴趣可以自己下下来测试一下。solar这个框架我也是今天才看到，有点像ZF，不过具体代码就没看了，也是PHP5专用的。
New Year&#8217;s Benchmarks
原来这篇Weblog的作者就是Solar的开发者。
]]></description>
			<content:encoded><![CDATA[<p>今天在找ZendFramework资料的时候找到了一个网站，用apache branchmark对四个框架进行了测试。分别是：</p>
<ul>
<li><a href="http://cakephp.org/">Cake</a></li>
<li><a href="http://solarphp.com/">Solar</a></li>
<li><a href="http://symfony-project.com/">Symfony</a></li>
<li><a href="http://framework.zend.com/">Zend Framework</a></li>
</ul>
<p>结果是Solar每秒中处理请求最多，Zend Framework次之，后面则跟着Cake，Symfony。</p>
<table border="1" cellspacing="0" cellpadding="4">
<thead>
<tr>
<th>ramework</th>
<th>avg</th>
<th>rel</th>
</tr>
</thead>
<tbody>
<tr>
<td>solar-0.25.0</td>
<td>170.26</td>
<td>3.24</td>
</tr>
<tr>
<td>zend-0.6.0</td>
<td>131.91</td>
<td>2.51</td>
</tr>
<tr>
<td>cake-1.1.12</td>
<td>114.39</td>
<td>2.18</td>
</tr>
<tr>
<td>symfony-1.0.0beta2</td>
<td>67.18</td>
<td>1.28</td>
</tr>
</tbody>
</table>
<p>由于该ZF版本是0.6版，而马上0.9版也就要发布，所以上面结果可参考一下。而且，作者在这些测试代码放在google code中，有兴趣可以自己下下来测试一下。solar这个框架我也是今天才看到，有点像ZF，不过具体代码就没看了，也是PHP5专用的。</p>
<p><a href="http://paul-m-jones.com/blog/?p=238">New Year&rsquo;s Benchmarks</a></p>
<p>原来这篇Weblog的作者就是Solar的开发者。</p>
]]></content:encoded>
			<wfw:commentRss>http://gonefish.info/blog/?feed=rss2&amp;p=234</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>关于Zend Framework中的URL映射</title>
		<link>http://gonefish.info/blog/?p=154#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed</link>
		<comments>http://gonefish.info/blog/?p=154#comments</comments>
		<pubDate>Fri, 13 Feb 2009 13:49:23 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Zend-Framework]]></category>

		<guid isPermaLink="false">http://gonefish.cn/weblog/about-zend-framework-url-mapping-notice/</guid>
		<description><![CDATA[在MVC的结构中，都会有一些URL的映射机制，他可以让你写出漂亮的URL，友好的URL是SEO中重要的一部分。在使用ZF的时候，如果对URL没有太多要求，可以使用默认约定的URL规则，这样做是最快的。如果你想使用漂亮的URL，不管你用什么Route，都不要一次性添加许多Route。因为在ZF中，所有的自定Route都会添加到一个数组中，而且，每次都会遍历数组来匹配你请求请求的URL对应哪一个Route。如果你的规则越多，那么效率就会越低，那是当然的。所以，最好添加Route前，判断一下URL，再来添加某一个Route。
以上我看ZF的源代码后的结果，不过还没有做的测试，可能出现不服的情况。&#160;
]]></description>
			<content:encoded><![CDATA[<p>在MVC的结构中，都会有一些URL的映射机制，他可以让你写出漂亮的URL，友好的URL是SEO中重要的一部分。在使用ZF的时候，如果对URL没有太多要求，可以使用默认约定的URL规则，这样做是最快的。如果你想使用漂亮的URL，不管你用什么Route，都不要一次性添加许多Route。因为在ZF中，所有的自定Route都会添加到一个数组中，而且，每次都会遍历数组来匹配你请求请求的URL对应哪一个Route。如果你的规则越多，那么效率就会越低，那是当然的。所以，最好添加Route前，判断一下URL，再来添加某一个Route。</p>
<p>以上我看ZF的源代码后的结果，不过还没有做的测试，可能出现不服的情况。&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://gonefish.info/blog/?feed=rss2&amp;p=154</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zend_Db里各种接口关系</title>
		<link>http://gonefish.info/blog/?p=140#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed</link>
		<comments>http://gonefish.info/blog/?p=140#comments</comments>
		<pubDate>Fri, 13 Feb 2009 13:49:17 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Zend-Framework]]></category>

		<guid isPermaLink="false">http://gonefish.cn/weblog/zend-db-every-db-interface-relation/</guid>
		<description><![CDATA[这段时间主要在改数据库方面的东西，于是有时间对Zend_Db进行了解。
Zend_Db是最低层的封装，通过不同的适配器，来实现不同数据库和不同数据库接口之间的差别。现在最主要的使用pdo_mysql这个适配器，Mysqli也许也是个不错的选择。这个接口的数据库操作是需要自己写sql语句的，但还是提供了一些简单的功能封装。至于Oracle和Db2我就没试过了。
Zend_Db_Table是一个&#8220;表模式&#8221;，这种模式你能用面向对像的方式来操作数据库。在创建实现的时间，会要求你添加了个Zend_Db实例，因为所有的数据操作还是通过Zend_Db来完成的。
Zend_Db_Table_Row你可以把它看到是一条记录，当然是通过Zend_Db_Table里的某些方法创建的，让你操作对象一样修改某一种记录。但这里还是包装，Zend_Db_Table_Row的方法找Zend_Db_Table，结果Zend_Db_Table又去找Zend_Db。
Zend_Db_Table_Rowset是一个Zend_Db_Table_Row的迭代器。
]]></description>
			<content:encoded><![CDATA[<p>这段时间主要在改数据库方面的东西，于是有时间对Zend_Db进行了解。</p>
<p>Zend_Db是最低层的封装，通过不同的适配器，来实现不同数据库和不同数据库接口之间的差别。现在最主要的使用pdo_mysql这个适配器，Mysqli也许也是个不错的选择。这个接口的数据库操作是需要自己写sql语句的，但还是提供了一些简单的功能封装。至于Oracle和Db2我就没试过了。</p>
<p>Zend_Db_Table是一个&ldquo;表模式&rdquo;，这种模式你能用面向对像的方式来操作数据库。在创建实现的时间，会要求你添加了个Zend_Db实例，因为所有的数据操作还是通过Zend_Db来完成的。</p>
<p>Zend_Db_Table_Row你可以把它看到是一条记录，当然是通过Zend_Db_Table里的某些方法创建的，让你操作对象一样修改某一种记录。但这里还是包装，Zend_Db_Table_Row的方法找Zend_Db_Table，结果Zend_Db_Table又去找Zend_Db。</p>
<p>Zend_Db_Table_Rowset是一个Zend_Db_Table_Row的迭代器。</p>
]]></content:encoded>
			<wfw:commentRss>http://gonefish.info/blog/?feed=rss2&amp;p=140</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zend Framework 1.1 Roadmap</title>
		<link>http://gonefish.info/blog/?p=116#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed</link>
		<comments>http://gonefish.info/blog/?p=116#comments</comments>
		<pubDate>Fri, 13 Feb 2009 13:49:11 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Zend-Framework]]></category>

		<guid isPermaLink="false">http://gonefish.cn/weblog/zend-framework-1-1-roadmap/</guid>
		<description><![CDATA[我已经好久一段时间没有写PHP的程序，这个小网站的程序也停了下来。一些工作转到了Django。最近去看1.1的Roadmap的时候，发现1.1将是一个非常重大的更新，LDAP在大型网站中是非常有用的服务，做为&#8220;企业级&#8221;的框架有些东西还是必要的。Zend_Cache方面看来也得到了强化。
ZF-2117 Code Generation Tool
这个看来是非常必要的，DRY，是个好东西
ZF-2116 View Layouts 
已前在Zend_View与控制器结合不是非常紧密，现在通过Layouts技术来结合。总之1.1是个非常重要的版本。另外PDT也已经发布1.0的版本了，最近被eclipse的强大所感动了。
]]></description>
			<content:encoded><![CDATA[<p>我已经好久一段时间没有写PHP的程序，这个小网站的程序也停了下来。一些工作转到了Django。最近去看1.1的Roadmap的时候，发现1.1将是一个非常重大的更新，LDAP在大型网站中是非常有用的服务，做为&ldquo;企业级&rdquo;的框架有些东西还是必要的。Zend_Cache方面看来也得到了强化。</p>
<p><a href="http://framework.zend.com/issues/browse/ZF-2117">ZF-2117 Code Generation Tool</a></p>
<p>这个看来是非常必要的，DRY，是个好东西</p>
<p>ZF-2116 <a href="http://framework.zend.com/wiki/display/ZFPROP/Zend_Layout">View Layouts </a></p>
<p>已前在Zend_View与控制器结合不是非常紧密，现在通过Layouts技术来结合。总之1.1是个非常重要的版本。另外<a href="http://www.eclipse.org/pdt/">PDT</a>也已经发布1.0的版本了，最近被eclipse的强大所感动了。</p>
]]></content:encoded>
			<wfw:commentRss>http://gonefish.info/blog/?feed=rss2&amp;p=116</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zend Framework性能优化指南</title>
		<link>http://gonefish.info/blog/?p=59#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed</link>
		<comments>http://gonefish.info/blog/?p=59#comments</comments>
		<pubDate>Fri, 13 Feb 2009 13:48:55 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Zend-Framework]]></category>

		<guid isPermaLink="false">http://gonefish.cn/weblog/Zend-Framework-Performance-Guide/</guid>
		<description><![CDATA[最新的官方手册中的内容
http://framework.zend.com/manual/en/performance.html
&#160;
]]></description>
			<content:encoded><![CDATA[<p>最新的官方手册中的内容</p>
<p><a href="http://framework.zend.com/manual/en/performance.html">http://framework.zend.com/manual/en/performance.html</a></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://gonefish.info/blog/?feed=rss2&amp;p=59</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>简单的方法优化Zend Framework的性能</title>
		<link>http://gonefish.info/blog/?p=51#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed</link>
		<comments>http://gonefish.info/blog/?p=51#comments</comments>
		<pubDate>Fri, 13 Feb 2009 13:48:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Zend-Framework]]></category>

		<guid isPermaLink="false">http://gonefish.cn/weblog/2009-1-21-3/</guid>
		<description><![CDATA[在Zend Framework1.7中的Zend_Loader包中，加入了一个优化读取helper类的机制。只需要简单设置一下Zend_Loader_PluginLoader就可以达到效果。
Zend_Loader_PluginLoader::setIncludeFileCache($classFileIncCache);
$classFileIncCache指向一个过写的空白PHP文件，当有helper之类的文件需要加载时，会自动写入到$classFileIncCache文件中，以include_once的形式加载，在之后就会默认自动加载程序中用到的文件了。在许多的组件的读取helper过程中，已经判断了是否设置了$classFileIncCache，如果设置了就会写进这个文件，如果没有设置就是直接读取了。
关于自定的View_Helper可以设置Zend_Loader_PluginLoader的插件读取目录，具体可参考官方文档。
]]></description>
			<content:encoded><![CDATA[<p>在Zend Framework1.7中的Zend_Loader包中，加入了一个优化读取helper类的机制。只需要简单设置一下Zend_Loader_PluginLoader就可以达到效果。</p>
<p>Zend_Loader_PluginLoader::setIncludeFileCache($classFileIncCache);</p>
<p>$classFileIncCache指向一个过写的空白PHP文件，当有helper之类的文件需要加载时，会自动写入到$classFileIncCache文件中，以include_once的形式加载，在之后就会默认自动加载程序中用到的文件了。在许多的组件的读取helper过程中，已经判断了是否设置了$classFileIncCache，如果设置了就会写进这个文件，如果没有设置就是直接读取了。</p>
<p>关于自定的View_Helper可以设置Zend_Loader_PluginLoader的插件读取目录，具体可参考<a href="http://framework.zend.com/manual/en/zend.loader.pluginloader.html">官方文档</a>。</p>
]]></content:encoded>
			<wfw:commentRss>http://gonefish.info/blog/?feed=rss2&amp;p=51</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>使用ZF创建子域名站点</title>
		<link>http://gonefish.info/blog/?p=48#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed</link>
		<comments>http://gonefish.info/blog/?p=48#comments</comments>
		<pubDate>Thu, 12 Feb 2009 13:51:52 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Zend-Framework]]></category>

		<guid isPermaLink="false">http://gonefish.cn/weblog/use-hostname-route-build-sub-domain/</guid>
		<description><![CDATA[在开发Web站点的时候，经常会碰到提供子域名的服务之类的问题，而在Zend Framework的开发过程中，所有的链接都会被重写到index.php上。这样在实现子域名的开发上就有些麻烦，但在Zend Framework 1.7中，在一个新的路由器专门用来处理子域名的映射，Zend_Controller_Router_Route_Hostname。她的工作原理是这样的：
首页通过Zend_Controller_Router_Route_Hostname规则找到相对应的域名，根据域名你可以产生相关变量，如：控制器名称；用户ID等。这找到相对应的规则后，再对路径进行了路由规则进行匹配。就是说通过两次路由规则找到相对应的参数
假如有这样一个地址，gonefish.users.example.com/profile。创建如下规则：
$hostnameRoute&#160;=&#160;new&#160;Zend_Controller_Router_Route_Hostname(&#160;&#160;&#160; &#8216;:username.users.example.com&#8217;,&#160;&#160;&#160;&#160;&#160;&#160;&#160; array(&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#8216;controller&#8217;&#160;=&#62;&#160;&#8217;profile&#8217;,&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#8216;action&#8217;&#160;=&#62;&#160;&#8217;userinfo&#8217;&#160;&#160;&#160;&#160;&#160;&#160;&#160; )&#160;&#160;&#160; );
$plainPathRoute&#160;=&#160;new&#160;Zend_Controller_Router_Route_Static(&#8221;);$plainPathRoute2 =&#160;new&#160;Zend_Controller_Router_Route(&#160;&#160;&#160; &#8216;profile&#8217;,&#160;&#160;&#160; array(&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#8216;action&#8217;&#160;=&#62;&#160;&#8217;profile&#8217;&#160;&#160;&#160; ),);
$router-&#62;addRoute(&#8216;user&#8217;,&#160;$hostnameRoute-&#62;chain($plainPathRoute);$router-&#62;addRoute(&#8216;user&#8217;,&#160;$hostnameRoute-&#62;chain($plainPathRoute2);
第一种情况：访问gonefish.users.example.com。首先，路由系统先匹配gonefish.users.example.com域名，找到了控制名和动作名；然后再对后面的路径进行一次规则匹配，因为没有其它路径了，所以应用的是$plainPathRoute１路由规则。
第二种情况：访问gonefish.users.example.com/profile。首先，路由系统先匹配gonefish.users.example.com域名，找到了控制名和动作名；然后再对路径profile进行一次规则匹配，这样更新了动作名，即$plainPathRoute2的路由规则。
通过对访问地址进行两次路由规则的匹配来映射最终访问的方法。
]]></description>
			<content:encoded><![CDATA[<p>在开发Web站点的时候，经常会碰到提供子域名的服务之类的问题，而在Zend Framework的开发过程中，所有的链接都会被重写到index.php上。这样在实现子域名的开发上就有些麻烦，但在Zend Framework 1.7中，在一个新的路由器专门用来处理子域名的映射，Zend_Controller_Router_Route_Hostname。她的工作原理是这样的：</p>
<p>首页通过Zend_Controller_Router_Route_Hostname规则找到相对应的域名，根据域名你可以产生相关变量，如：控制器名称；用户ID等。这找到相对应的规则后，再对路径进行了路由规则进行匹配。就是说通过两次路由规则找到相对应的参数</p>
<p>假如有这样一个地址，gonefish.users.example.com/profile。创建如下规则：</p>
<p>$hostnameRoute&nbsp;=&nbsp;new&nbsp;Zend_Controller_Router_Route_Hostname(<br />&nbsp;&nbsp;&nbsp; &#8216;:username.users.example.com&#8217;,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; array(<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8216;controller&#8217;&nbsp;=&gt;&nbsp;&#8217;profile&#8217;,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8216;action&#8217;&nbsp;=&gt;&nbsp;&#8217;userinfo&#8217;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br />&nbsp;&nbsp;&nbsp; );</p>
<p>$plainPathRoute&nbsp;=&nbsp;new&nbsp;Zend_Controller_Router_Route_Static(&#8221;);<br />$plainPathRoute2 =&nbsp;new&nbsp;Zend_Controller_Router_Route(<br />&nbsp;&nbsp;&nbsp; &#8216;profile&#8217;,<br />&nbsp;&nbsp;&nbsp; array(<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8216;action&#8217;&nbsp;=&gt;&nbsp;&#8217;profile&#8217;<br />&nbsp;&nbsp;&nbsp; ),<br />);</p>
<p>$router-&gt;addRoute(&#8216;user&#8217;,&nbsp;$hostnameRoute-&gt;chain($plainPathRoute);<br />$router-&gt;addRoute(&#8216;user&#8217;,&nbsp;$hostnameRoute-&gt;chain($plainPathRoute2);</p>
<p>第一种情况：访问gonefish.users.example.com。首先，路由系统先匹配gonefish.users.example.com域名，找到了控制名和动作名；然后再对后面的路径进行一次规则匹配，因为没有其它路径了，所以应用的是$plainPathRoute１路由规则。</p>
<p>第二种情况：访问gonefish.users.example.com/profile。首先，路由系统先匹配gonefish.users.example.com域名，找到了控制名和动作名；然后再对路径profile进行一次规则匹配，这样更新了动作名，即<code>$plainPathRoute2的路由规则。</code></p>
<p>通过对访问地址进行两次路由规则的匹配来映射最终访问的方法。</p>
]]></content:encoded>
			<wfw:commentRss>http://gonefish.info/blog/?feed=rss2&amp;p=48</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
