首先这是一个大概4年前做的PHP项目,使用的是Zend Framework 1 + Smarty 2 , 已经很多年没有动过了,
最近抽风了,把这个项目要玩改版。拿出来改改吧。
ZF 升级2这事,还是再考虑一下。毕竟项目结构要改变。
Smarty由2升级为3还是可以考虑一下。
下载最新版Smarty ,主要是为了使用它自带的支持类似于.net MVC 中的layout特性。当然ZF有Layout,但以前就是直接用Smarty,就直接升级吧。
遇到的问题。
- ZF整合的过程中,发现 Smarty2与Smarty 3的代码改动不小,直接使用原来Smarty2与ZF的整合方式不行了。换吧,参考:
http://gediminasm.org/post/smarty-3-extension-for-zend-framework
- 原来在Smarty 2 中如果不赋值,就按空或False来进行处理了。但Smarty3要求已经严格了,只要不赋值就给出警告,为了改动小些,在smarty实例化后,加入一行 $this->_smarty->error_reporting = E_ALL & ~E_NOTICE; 这是一个XX的办法,不值得推荐。就先凑合着吧。
- 如果打算使用 {php}{/php} 这个标签,那就使用 SmartyBC class 吧。
require_once 'Smarty/SmartyBC.class.php';
$this->_smarty = new SmartyBC (); - 2中 如果使用{include file=header.tpl}是没有问题的,在3中就要 加上引号了{include file=’header.tpl’}
- 2 中 {url a.controller=aaaa a.action=bbbb username=$username} 升级到3 , {$this->url([‘controller’=>’aaaaa’,’action’=>’bbbbb’,’username’=>$username])}