Zend Framework中 怎样使用Zend_View与Zend_Layout玩布局?

 

Zend Framework中 怎样使用Zend_View与Zend_Layout玩布局?  

2011-11-04 20:52:55|  分类: zend framework |  标签: |字号 订阅

在朋友们要用Zend_Layout布局..所以在看这教程之前..要先明白什么是Layout..在Zend Farmework 里它的手册里我是没有看到有很好的对这个词有什么说明的..我看手册上,再经过我自己的理解(我自己的理解,可能有误,请大家体谅,谢谢^_^):Layout在英文里的意思是指:安排,设计,布局,规划图,布局图等意思..

同样在我们在做网站设计的时候,,我们也会有规化..网站页面可能会有很多重复的部分..比如说页面的头部,页面脚部.这些部分几乎在每一个部分都可以重用…所Zend Framework 就提供我们一个组件Zend_Layout,它让我们可以把这些重复的东西写在一个共用的文件里(这里暂时先这样叫).也就可以说是一个页面的布局里.通过这个组件,我们就可以省去很多重复的工作..让我们专心在程序开发上..同时对以后的代码维护也带来很大的方便!
   OK!当我们理解了什么叫Layout.我们再来运用这个Zend_Layout就不会是难事了..现在我一步一步来和朋友们交流怎样用这个组件.
第一步:初始化Zend_Layout.
  当您打算要使用Zend_Layout时.您需要在你的入口文件(index.php)或是在你需要的控制器里先初始化Zend_Layout,让它和MVC一起使用.
其代码如下:

<?php //startMvc里面的数组是你指定存放Layout文件的路径 Zend_Layout::startMvc(array('layoutPath' => ROOT_DIR.'/app/views/layouts')); ?>  在这里startMvc()可以带一个可选的数组或Zend_Config 对象来定制实例,有利于你对不同的页面使用不同的Layout.这样的话用起来可以更方便,灵活.

第二步:建立你的Layout模板.
  这里就是比较重要的,layout文件模板默认存放的路径是/app/views/layouts下面.当然你也可以自己定义其它的路径,比如说:你可以在startMvc()里设置为Zend_Layout::startMvc(array(‘layoutPath’ => ROOT_DIR.’/app/views/kylingood/layouts’));注意我这里加了一层kylingood文件夹.所以看你自己喜欢怎样.
你都可以设置的.. 这个layout文件内容就是把你设计的网站有相同部分,可以重用的内容放在这里..页面代码基本如下(代码内有注解):

<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>OOPHP教程,如何使用Zend_Layout</title> </head> <body> <div id="content"> <!-- 这里页面body内容,这里会变--> <?php echo $this->layout()->content ?> </div> <div id="sidebar"> <!-- 这里页面侧边内容,可以重用,内容不变-->  <?php echo $this->layout()->sidebar; ?> </div> <div id="footer"> <!-- 这里页面页脚内容,可以重用,内容不变--> <?php echo $this->layout()->footer; ?> </div> </body> </html>

第三步:在控制器里设置你共用代码的内容.
你要在的布局存放你取到的数据或是其它内容时..你就需要设置这个内容.并让它可以在你的View页面呈现也来.这里我们只要做以下步骤:
代码如下(代码内有注解):

<?php class IndexController extends Zend_Controller_Action {  //这控制器里调用Layout  function indexAction()   {    $response = $this->getResponse();    //sidebar.phtml,footer.phtml都是    //公共部分.这二个页面分别会替换掉Layout里面的二个变量    // <?php echo $this->layout()->sidebar; ?>    //<?php echo $this->layout()->footer; ?>    //所以我们就可以实现重用...    $response->insert('sidebar', $this->view->render('sidebar.phtml'));    $response->insert('footer', $this->view->render('footer.phtml'));   } ?>

总结:
当我们完成以上步骤时.我们就可以运用Zend_Layout.只要我们在所需用要的控制器里写上下面这代码..程序就会自动调用我们设定好的Layout.
但是我们也会遇到一个问题:就是当我们不想只用一个Layout怎么办?或是我想把我现在的页面换一个版形我要怎样做?难不成我要重新再写一次程序.?
哈哈…不要担心..你只要在你的控制器里写上这代码$this->_helper->layout->setLayout(‘newLayout’);你就可以把你原来的Layout给换掉.
如此一来你的网站就变成另一个版形了…这样是不是很方便啊??呵呵.~~~~
当然也有朋友会说..要是我不想用Zend_Layout怎么办?我要禁用Layout…!!!Zend Framework 告诉你了..你只要写句:$this->_helper->layout->disableLayout();
你在你的控制器里用上它..不想要的Layout就会消失…最后..还有很多问题…比如说要是有多个不同的模块要怎样用不同的Layout…怎样改变Layout….等等
问题很多…时间关系我不能一一说明..只希望想学的朋友认真去学习…才会得到更多..我只是给大家一个思想…谢谢

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值