Zend Framework 与Smarty 的完美整合!

废话就不说了,思路是这样的:

1. 先把smarty 类库引入项目目录中,建立好smarty 所需要的一些目录(编译目录、缓存目录等);
2. 在library 目录下新建一个文件Templater.php,这个文件中的Templater 类即是采用smarty 后的新的视图类,它继承自Zend_View_Abstract,注意在这个类中要根据smarty 的操作规则重写Zend_View_Abstract 的一些方法,这样的话,在控制器中我们还是使用Zend_View_Abstract 的视图操作方式但本质上却换成了smarty;
3. 在application/Bootstrap.php 文件的添加一个方法_initSmarty 以初始化smarty 并替代原来的模板显示机制;
4. 大功告成,在控制器上的操作与原来没有什么不同,不过此时已经是用smarty 来渲染视图了。

注意:本例中测试的Zend Framework 版本是1.9.x,其他版本可能需要做一些相应的调整。

下面附上一些主要的代码,有疑问的话可跟贴询问 ^_^

下面我们来做一个简单的测试

先写一个简单的模板文件application/views/index/index.html:

然后是控制器文件application/controllers/IndexController.php:

访问相应的页面(例如 http://localhost/zendframeworkwithsmarty/ )即可看到Hello World 字样的输出。

 

一个常见的问题:如何在模板文件中获得项目基地址的引用?

这确实是一个必须要解决的问题,知道的基地址才能够正确的载入外部js/css 文件以及正确的实现页面间的跳转。

:Zend_Controller_Front 类的getBaseUrl 方法可以获取项目基地址,但每次要先获取该实例再调用方法确实很麻烦,可以这样做,新建一个视图助手Zend_View_Helper_BaseUrl,在该视图助手类中定义一个方法(例如baseUrl)以获取基地址,这样在控制器中就可以通过$this->view 对象来调用该方法了($this->view->baseUrl())

 

参考至 《PHP Web 2.0开发实战》

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值