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 =& get_instance(); $this->lang_code = $this->CI->config->item('lang_code'); $this->template_dir = BASEPATH . '../' . APPNAME . '/views/'; $this->compile_dir = BASEPATH . '../' . APPNAME . '/libraries/smarty/templates_c/'; $this->config_dir = BASEPATH . '../' . APPNAME . '/libraries/smarty/configs/'; $this->cache_dir = BASEPATH . '../' . APPNAME . '/libraries/smarty/cache/'; $this->caching = true; $this->force_compile = true; log_message('debug', "SmartyExtended Class Initialized"); } function view($template, $data='') { if(trim($data)!='') { if(is_array($data)) { foreach($data as $key=>$val) { $this->assign($key, $val); } } } $this->display($template . '.tpl'); //模板後綴名 } } ?>
5.添加自動調用:
修改/application/config/下的autoload.php函數
$autoload['libraries'] = array('SmartyExtended');
6.調用:
在controller裏使用下面方法調用就能夠了。工具
$data = array();//initialize array $data['test'] = ......; $this->smartyextended->view('home', $data);
7.在模板裏的調用方法參考smarty手冊post