作者:hojk | 来源:互联网 | 2014-03-27 00:19
就本人来说,不怎么喜欢ZendFramework,赞Symphony。ZendFramework2也出来一段时间了,有时间研究下。今天有人问了我,看了下Zend_Layout使用部分。一个基本的
就本人来说,不怎么喜欢Zend Framework,赞Symphony。Zend Framework 2也出来一段时间了,有时间研究下。今天有人问了我,看了下Zend_Layout使用部分。一个基本的web页面,可能页面的头和尾或某些模块都是一样,可以把公共的部分做成模版。不仅可以提高开发效率,也为后期的维护带来方便。还可以轻松实现切换主题机制。
第一步:在application.ini中配置layout路径,[production]下加入:
resources.layout.layoutPath = APPLICATION_PATH "/views/scripts/layouts"
resources.layout.layout = "layout"
文件结构如下:
第二步:建立相关文件
layout.phtml文件:
render('header.phtml');?>
layout()->nav ?>
layout()->content;?>
render('footer.phtml');?>
header.phtml文件:
nav.phtml文件:
这是导航
footer.phtml文件:
第三步:在动作控制器中:
require_once APPLICATION_PATH.'/models/Article.php';
require_once 'BaseController.php';
require_once 'Zend/Layout.php';
class IndexController extends BaseController
{
public function init()
{
parent::init();
//set layout
$layout = new Zend_Layout();
$layout->nav = $this->view->render('layouts/nav.phtml');
$layout->setLayout('layout');
}
//这里的内容到$this->layout()->content中
public function indexAction()
{
$a = new Article();
$res = $a->fetchAll()->toArray();
$this->view->res = $res;
$this->render('index');
}
}
通过访问,你可以看到,zend已经为你加载了全部内容: