Integrationsschritte von smarty3 unter CI-Framework (mit Code)

不言
Freigeben: 2023-04-04 08:48:01
nach vorne
1631 Leute haben es durchsucht

Der Inhalt dieses Artikels befasst sich mit den Integrationsschritten von smarty3 im CI-Framework (mit Code). Freunde in Not können darauf verweisen.

1 Laden Sie smarty3 herunter, legen Sie die libs-Datei im Verzeichnis der Framework-Bibliotheken ab und benennen Sie sie in smarty um
2 Erstellen Sie die Datei Ci_smarty.php unter den Bibliotheken mit dem folgenden Code

<?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;);
    }
}
Nach dem Login kopieren

3 In Create smarty.php im Framework-Konfigurationsverzeichnis lautet der Code wie folgt

<?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;;
Nach dem Login kopieren

4 Ci_smarty automatisch in die Konfigurationsdatei laden autoload.php

$autoload[&#39;libraries&#39;]=array(&#39;ci_smarty&#39;);
Nach dem Login kopieren

5 In der erweiterten übergeordneten Klasse von das Framework MY_Controller.php (falls nicht, nur Core jetzt unten erstellt) Fügen Sie den folgenden Code hinzu

/ * @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);
  }
Nach dem Login kopieren
rrree

6 Da Caching in der Konfigurationsdatei smarty.php aktiviert ist, aber nicht alle Seiten für das Caching geeignet sind, wann also Bei der Konfiguration der Anzeigemethode in MY_Controller sollten standardmäßig Parameter zum Löschen des Caches hinzugefügt werden, was eine Zwischenspeicherung erfordert. Die Seite muss beim Aufruf der Anzeigemethode nur den zweiten Parameter als true übergeben. Wenn Sie nach der Verwendung des Caches keinen lokalen Cache benötigen, können Sie das Tag-Paket {nocache}{/nocache} verwenden. Wenn das Tag nicht zwischengespeichert wird, besteht die Methode darin, Nocache nach dem Tag hinzuzufügen, z. B. {foreach $ arr as $v nocache}

7 Wenn das gesamte Projekt kein Caching verwendet, können Sie die beiden Zeilen $config['cache_lifetime'] = 3600; $config['caching'] = true; entfernen .php, und entfernen Sie die zweite Zeile aus der Anzeigemethode in MY_Controller-Parametern und zugehörigen Beurteilungen

Das obige ist der detaillierte Inhalt vonIntegrationsschritte von smarty3 unter CI-Framework (mit Code). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:cnblogs.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage