Zend Framework的view用过一小会就不想用了,还是喜欢用Smarty。
首先下载Smarty,然后解压,把里面的libs文件夹及其内容COPY到上次新建的test工程的library目录下,我喜欢改一下名字,把它重命名为Smarty。
打开application.ini文件,添加一行配置resources.frontController.noViewRenderer = 1,用来关闭Zend Framework默认的view。
添加Smarty的配置信息
smarty
[staging : production]
smarty.class_path = "Smarty/Smarty.class.php"
smarty.left_delimiter = "<*"
smarty.right_delimiter = "*>"
smarty.template_dir = "template"
smarty.compile_dir = "compile"
smarty.cache_dir = "cache"
smarty.cache_lifetime = 600
smarty.caching = 1
[staging : production]
smarty.class_path = "Smarty/Smarty.class.php"
smarty.left_delimiter = "<*"
smarty.right_delimiter = "*>"
smarty.template_dir = "template"
smarty.compile_dir = "compile"
smarty.cache_dir = "cache"
smarty.cache_lifetime = 600
smarty.caching = 1
打开Bootstrap.php文件,添加一个函数用于初始化Smarty
_initView
public function _initView(){
$config = new Zend_Config_Ini(CONFIG_FILE_PATH, 'staging');
require_once $config->smarty->class_path;
$smarty = new Smarty();
$smarty->left_delimiter = $config->smarty->left_delimiter;
$smarty->right_delimiter = $config->smarty->right_delimiter;
$smarty->template_dir = $config->smarty->template_dir;
$smarty->compile_dir = $config->smarty->compile_dir;
$smarty->cache_dir = $config->smarty->cache_dir;
$smarty->cache_lifetime = $config->smarty->cache_lifetime;
$smarty->caching = $config->smarty->caching;
Zend_Registry::set('smarty', $smarty);
}
public function _initView(){
$config = new Zend_Config_Ini(CONFIG_FILE_PATH, 'staging');
require_once $config->smarty->class_path;
$smarty = new Smarty();
$smarty->left_delimiter = $config->smarty->left_delimiter;
$smarty->right_delimiter = $config->smarty->right_delimiter;
$smarty->template_dir = $config->smarty->template_dir;
$smarty->compile_dir = $config->smarty->compile_dir;
$smarty->cache_dir = $config->smarty->cache_dir;
$smarty->cache_lifetime = $config->smarty->cache_lifetime;
$smarty->caching = $config->smarty->caching;
Zend_Registry::set('smarty', $smarty);
}
到此Smarty就整合好了。再贴一点点使用的代码吧
Code
$this->smarty = Zend_Registry::get('smarty');
$this->smarty->assign('bloguser', $this->bloguser);
$this->smarty->display($template);
$this->smarty = Zend_Registry::get('smarty');
$this->smarty->assign('bloguser', $this->bloguser);
$this->smarty->display($template);
网上有个整合的方法是把Smarty当成Zend Framework的一个插件,我觉得挺麻烦的,本人比较懒,还是喜欢现在这样子运用,呵呵。