简单研究了一下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的详解,害我搜了半天。