Maison >développement back-end >tutoriel php >Étapes d'intégration de smarty3 sous le framework CI (avec code)
Le contenu de cet article concerne les étapes d'intégration de smarty3 sous le framework CI (avec code). Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.
1 Téléchargez smarty3 et placez le fichier libs dans le répertoire des bibliothèques du framework et renommez-le en smarty
2 Créez le fichier Ci_smarty.php sous les bibliothèques avec le code suivant
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); require_once(APPPATH.'libraries/smarty/Smarty.class.php'); //这里指定Smarty.class.php的存放位置 class Ci_smarty extends Smarty { protected $ci; public function __construct() { parent::__construct(); $this->ci = & get_instance(); $this->ci->load->config('smarty');//加载smarty的配置文件 $this->cache_lifetime =$this->ci->config->item('cache_lifetime'); $this->caching = $this->ci->config->item('caching'); $this->config_dir = $this->ci->config->item('config_dir'); $this->template_dir = $this->ci->config->item('template_dir'); $this->compile_dir = $this->ci->config->item('compile_dir'); $this->cache_dir = $this->ci->config->item('cache_dir'); $this->use_sub_dirs = $this->ci->config->item('use_sub_dirs'); $this->left_delimiter = $this->ci->config->item('left_delimiter'); $this->right_delimiter = $this->ci->config->item('right_delimiter'); } }
3 Créez smarty.php dans le répertoire de configuration du framework, le code est le suivant
<?php $config['cache_lifetime'] = 3600;//缓存失效 $config['caching'] = true;//开启缓存 $config['template_dir'] = APPPATH .'views'; $config['compile_dir'] = APPPATH .'views/template_c'; $config['cache_dir'] = APPPATH . 'views/cache'; $config['config_dir'] = APPPATH . 'views/config'; $config['use_sub_dirs'] = false; //子目录变量(是否在缓存文件夹中生成子目录) $config['left_delimiter'] = '{'; $config['right_delimiter'] = '}';
4 Chargez automatiquement ci_smarty dans le fichier de configuration autoload.php
$autoload['libraries']=array('ci_smarty');
5 Dans la classe parent étendue MY_Controller du framework.php (si elle n'est pas créée sous core maintenant) ajoutez le code suivant
/ * @param $key * @par * smarty assign */ public function assign($key,$val){ $this->cismarty->assign($key,$val); } /** * @param $html * smarty smarty display方法 */ public function display($html,$is_cache=false){ if(!$is_cache) { $this->ci_smarty->clearCache($html); } $this->ci_smarty->display($html);} /** * smarty清除所有缓存 * @author shangshikai */ public function clearAllCache(){ $this->ci_smarty->clearAllCache(); } /** * smarty 清除某个模板的缓存 * @author shangshikai */ public function clearCache($html){ $this->ci_smarty->clearCache($html); }
/** * @param $html * @return mixed * smarty判断该模板是否有缓存 */ public function isCached($html) { return $this->ci_smarty->isCached($html); }
6 Puisque la mise en cache est activée dans le fichier de configuration smarty.php, mais pas tous les pages sont adaptées à la mise en cache, donc l'affichage est configuré dans MY_Controller. Les paramètres doivent être ajoutés à la méthode pour vider le cache par défaut. Les pages qui doivent être mises en cache doivent uniquement transmettre le deuxième paramètre comme vrai lors de l'appel de la méthode d'affichage. Après avoir utilisé le cache, si vous n'avez pas besoin de mettre en cache localement, vous pouvez utiliser le package de balises {nocache}{/nocache}. Si la balise n'est pas mise en cache, la méthode consiste à ajouter nocache après la balise, par exemple {foreach $. arr as $v nocache}
7 Si l'ensemble du projet n'utilise pas la mise en cache, vous pouvez supprimer les deux lignes $config['cache_lifetime'] = 3600; $config['caching'] = true; .php, et supprimez la deuxième ligne de la méthode d'affichage dans les paramètres MY_Controller et les jugements associés
.Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!