Yii整合smarty

在protected下的extensions文件夹放入我们的smarty类包,按照约定我们同在protected下的extensions(Yii的扩展默认都扔到这里)中建立CSmarty类文件。

内容如下:

  1. <?php  
  2. /**  
  3. *Author:Elite  
  4. */ 
  5.  
  6. require_once(Yii::getPathOfAlias('application.extensions.smarty').DIRECTORY_SEPARATOR.'Smarty.class.php');  
  7. define('SMARTY_VIEW_DIR', Yii::getPathOfAlias('application.views'));  
  8.  
  9. class CSmarty extends Smarty {  
  10.     const DIR_SEP = DIRECTORY_SEPARATOR;  
  11.     function __construct() {  
  12.         parent::__construct();  
  13.          
  14.         $this->template_dir = SMARTY_VIEW_DIR;  
  15.         $this->compile_dir = SMARTY_VIEW_DIR.self::DIR_SEP.'template_c';  
  16.         $this->caching = true;  
  17.         $this->cache_dir = SMARTY_VIEW_DIR.self::DIR_SEP.'cache';  
  18.         $this->left_delimiter  =  '<!--{';  
  19.         $this->right_delimiter =  '}-->';  
  20.         $this->cache_lifetime = 3600;  
  21.     }  
  22.     function init() {}  
  23. }  
  24. ?> 

然后建立相关联的文件夹。

紧接这是我们的配置部分

打开protected/config/main.php

在components数组中加入

'smarty'=>array(
    'class'=>'application.extensions.CSmarty',
),

最后在action中直接用Yii::app()->smarty就可以试用smarty了。如果每次在action中使用Yii::app()->smarty比较麻烦的话,可以在components下的Controller中可以加入

protected $smarty = '';

protected function init() {
       $this->smarty = Yii::app()->smarty;
 }

然后在action中直接可以用$this->smarty使用smarty了。

本文出自 “我相信” 博客,请务必保留此出处http://mrcelite.blog.51cto.com/2977858/789406

相关推荐