简单研究了一下Zend Framework 中的Layout,发现上手还真有点小难,必竟ZF的文件的确很少(心里安慰一下 :) )。
闲话少说,切入主题(仅讨论MVC中的布局):
一、配置
在使用布局之前需要配置layout的目录:
Zend_Layout::startMvc('./application/views/layouts');
该配置可以在入口文件中定义,也可以在Controller中定义。
二、layout 文件:layout.phtml
<?php echo $this->doctype ( 'XHTML1_STRICT' )?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <?php echo $this->headTitle() ?> <?php $this->headLink()->appendStylesheet('/content/css/admin.css'); ?> <?php $this->headLink()->appendStylesheet('http://localhost:800/ext-4.0.0/resources/css/ext-all.css'); ?> <?php echo $this->headLink() ?> <?php $this->headScript(Zend_View_Helper_HeadScript::FILE,'http://localhost:800/ext-4.0.0/bootstrap.js') ?> <?php echo $this->headScript() ?> </head> <body> <div id="nav">[<?php echo $this->layout()->nav ?>]</div> </body> </html>
咱就简单演示,越简单越好,主要讨论如何往布局中传值。
三、Action 代码片段:
Zend_Layout::startMvc('./application/views/layouts'); $response = $this->getResponse(); $response->insert('nav', 'nav值'); $this->_helper->layout->setLayout('layout');
这里就是获取Reponse对象,然后向该对象中插入值,就这么简单。
哎ZF技术大全中竟然没有对Layout的详解,害我搜了半天。