PHP头条
热点:

PHP开发必备 PHP模版引擎Dwoo深入学习(1)


在上一篇关于Dwoo的教程中(PHP开发必备 一步步学PHP模版引擎Dwoo),我们讨论了Dwoo中的基本用法。在本文中,我们将进一步讲解在Dwoo中的一些高级用法,比如插件机制的编写以及如何跟常见的PHP框架整合。

一、Dwoo中模版的继承

Dwoo的其中一个强大功能是它可以支持模版的继承。这实现起来是十分简单的,只需要定义好一个父模版,然后子模版则可以继承父模版了,并且可以在子模版中定义多种新的特性。聪明的开发者会善于利用这个特性,去减少重复的劳动。

Dwoo中继承模版的关键在于“扩展”的插件机制,它允许模版去继承另外一个模版。为了更好地理解这一特性,我们举个例子说明如下。假设目前你已经有一个基类的模版,名字叫base.tpl,其中包含了两个区域,一个是导航区,一个是内容区,如下:

  1. <html> 
  2. <head></head> 
  3. <body>   
  4. {block "nav"}  
  5. {/block}  
  6. {block "content"}  
  7. <div id="content"> 
  8. This is content for the main page.  
  9. </div>   
  10. {/block}  
  11. </body> 
  12. </html> 

现在,假设你的一些页面需要使用水平导航条,你只需要继承基类模版页即可,并且可以重新定义导航条的样式,如下代码,我们把这个代码定义为child.tpl:

  1. {extends "base.tpl"}  
  2. {block "nav"}  
  3. <div id="nav">  
  4. <a href="#">Home</a> |   
  5. <a href="#">News</a> |  
  6. <a href="#">Weather</a> |  
  7. <a href="#">Hotels</a> |  
  8. <a href="#">Dining</a>  
  9. </tr>  
  10. </table>  
  11. </div>  
  12. {/block

这里使用了{extends “base.tpl”}指出是继承了父类的模版,并且在这里的{block “nav”}区域中,重写了导航条的内容,最后输出为如下图:

shuchujieguo

现在我们考察另外一种情况,假设一些页面中需要额外的子导航菜单,比如需要以垂直形式显示导航条,这时,我们可以采用如下代码:

  1. {extends "child.tpl"}  
  2. {block "nav"}  
  3. {$dwoo.parent}  
  4. <div id="sub-nav">  
  5. <h2>{$subtitle}</h2>  
  6. <ul>  
  7. {loop $items}  
  8. <li><a href="#">{$item}</a></li>   
  9. {/loop}  
  10. </ul>  
  11. </div>   
  12. {/block}  
  13. {block "content"}  
  14. <div id="content">  
  15. This is content for the Dining page.  
  16. </div>  
  17. {/block

在这里,使用了{$dwoo.parent}去调用了父类模版,注意这里是继承了child.tpl这个模版,也就是说,调用了父类模版中的导航条中的内容,并且这里又重新定义了一个垂直的导航条,注意这里还重写了content区域的内容,覆盖了父模版中对应的content区域的内容了,结果如下图:

shuchujieguo

可以看到,只要适当使用模版继承,则可以大大方便开发。


www.phpzy.comtrue/php/9245.htmlTechArticlePHP开发必备 PHP模版引擎Dwoo深入学习(1) 在上一篇关于Dwoo的教程中(PHP开发必备 一步步学PHP模版引擎Dwoo),我们讨论了Dwoo中的基本用法。在本文中,我们将进一步讲解在Dwoo中的一些高级用...

相关文章

相关频道:

PHP之友评论

今天推荐