Maison > développement back-end > tutoriel php > Étapes d'intégration de smarty3 sous le framework CI (avec code)

Étapes d'intégration de smarty3 sous le framework CI (avec code)

不言
Libérer: 2023-04-04 08:48:01
avant
1675 Les gens l'ont consulté

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(&#39;BASEPATH&#39;)) exit(&#39;No direct script access allowed&#39;);

require_once(APPPATH.&#39;libraries/smarty/Smarty.class.php&#39;);     //这里指定Smarty.class.php的存放位置
class Ci_smarty extends Smarty
{
    protected $ci;
    public function __construct()
    {
        parent::__construct();
        $this->ci = & get_instance();
        $this->ci->load->config(&#39;smarty&#39;);//加载smarty的配置文件
        $this->cache_lifetime =$this->ci->config->item(&#39;cache_lifetime&#39;);
        $this->caching = $this->ci->config->item(&#39;caching&#39;);
        $this->config_dir = $this->ci->config->item(&#39;config_dir&#39;);
        $this->template_dir = $this->ci->config->item(&#39;template_dir&#39;);
        $this->compile_dir = $this->ci->config->item(&#39;compile_dir&#39;);
        $this->cache_dir = $this->ci->config->item(&#39;cache_dir&#39;);
        $this->use_sub_dirs = $this->ci->config->item(&#39;use_sub_dirs&#39;);
        $this->left_delimiter = $this->ci->config->item(&#39;left_delimiter&#39;);
        $this->right_delimiter = $this->ci->config->item(&#39;right_delimiter&#39;);
    }
}
Copier après la connexion

3 Créez smarty.php dans le répertoire de configuration du framework, le code est le suivant

<?php
$config[&#39;cache_lifetime&#39;] = 3600;//缓存失效
$config[&#39;caching&#39;] = true;//开启缓存
$config[&#39;template_dir&#39;] = APPPATH .&#39;views&#39;;
$config[&#39;compile_dir&#39;] = APPPATH .&#39;views/template_c&#39;;
$config[&#39;cache_dir&#39;] = APPPATH . &#39;views/cache&#39;;
$config[&#39;config_dir&#39;] = APPPATH . &#39;views/config&#39;;
$config[&#39;use_sub_dirs&#39;] = false; //子目录变量(是否在缓存文件夹中生成子目录)
$config[&#39;left_delimiter&#39;] = &#39;{&#39;;
$config[&#39;right_delimiter&#39;] = &#39;}&#39;;
Copier après la connexion

4 Chargez automatiquement ci_smarty dans le fichier de configuration autoload.php

$autoload[&#39;libraries&#39;]=array(&#39;ci_smarty&#39;);
Copier après la connexion

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);
  }
Copier après la connexion
/**
 * @param $html
 * @return mixed
 * smarty判断该模板是否有缓存
 */
public function isCached($html)
{
    return $this->ci_smarty->isCached($html);
}
Copier après la connexion

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!

Étiquettes associées:
source:cnblogs.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal