CodeIgniter(CI) 是一個小巧但功能強大的 PHP 框架,是一個簡單而「優雅」的工具包,是進口的哦,可是他默認沒有靜態模板引擎,而smarty模板引擎是個很是優秀的模板引擎,擁有很是多的用戶,許多開發者都熟悉他。這裏就講講怎麼在CI框架下添加smarty類,來使用smarty模板引擎。php

1.下載smarty,官網:http://www.smarty.net/download.php 
把smarty的函數庫(libs文件夾)解壓放到ci框架下的application文件夾下的libraries裏,/applicaton/libraries/smarty/緩存

2.在根目錄下的index.php里加入下面一句:app

define('APPNAME', 'application');

3.在smarty文件夾裏建cache、templates_c、configs文件夾(模板引擎的放緩存的文件夾,也能夠放在其餘地方,但要注意下一步SmartyExtended.php裏作相應的修改)框架

4.在/application/libraries/下建smarty類文件SmartyExtended.php
SmartyExtended.php(代碼)ide

<!--p
if (!defined('BASEPATH')) exit('No direct script access allowed');
 
define('SMARTY_DIR', BASEPATH . '../' . APPNAME . '/libraries/smarty/');
require(SMARTY_DIR . 'Smarty.class.php');
 
class SmartyExtended extends Smarty {
 
	var $CI;
	var $lang_code;
 
	/**
	 * Constructor
	 *
	 * Loads the smarty class
	 *
	 * @access	public
	 */
	function SmartyExtended() {
 
		if (!file_exists(BASEPATH . '../' . APPNAME . '/libraries/smarty/cache'))
		{
			mkdir(BASEPATH . '../' . APPNAME . '/libraries/smarty/cache', 0777);
		}
 
		$thi-->CI			=&amp; get_instance();
		$this-&gt;lang_code	= $this-&gt;CI-&gt;config-&gt;item('lang_code');
 
		$this-&gt;template_dir = BASEPATH . '../' . APPNAME . '/views/';
        $this-&gt;compile_dir  = BASEPATH . '../' . APPNAME . '/libraries/smarty/templates_c/';
        $this-&gt;config_dir   = BASEPATH . '../' . APPNAME . '/libraries/smarty/configs/';
        $this-&gt;cache_dir    = BASEPATH . '../' . APPNAME . '/libraries/smarty/cache/';
 
		$this-&gt;caching 			= true;
		$this-&gt;force_compile	= true;
 
		log_message('debug', "SmartyExtended Class Initialized");
    }
 
	function view($template, $data='') {
 
		if(trim($data)!='')
		{
			if(is_array($data))
			{
				foreach($data as $key=&gt;$val)
				{
					$this-&gt;assign($key, $val);
				}
			}
		}
 
		$this-&gt;display($template . '.tpl');  //模板後綴名
	}
}
?&gt;

5.添加自動調用:
修改/application/config/下的autoload.php函數

$autoload['libraries'] = array('SmartyExtended');

6.調用:
在controller裏使用下面方法調用就能夠了。工具

$data = array();//initialize array
$data['test'] = ......;
$this-&gt;smartyextended-&gt;view('home', $data);

7.在模板裏的調用方法參考smarty手冊post