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

  久没有写完我的教程了...可能有很多朋友都不想再来我这个博客上.....呵呵...不过也没什么关系...当这个博客没有资源了.来这里也没什么东西可以学的...正好在元旦休息...我有时间不要再忙什么事...现在就接着写我答应给朋友的教程...前时间..我只写到了第6篇...所以今天就来写第7篇文章...
      在朋友们要用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
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值