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('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 In Create smarty.php im Framework-Konfigurationsverzeichnis lautet der Code wie folgt
<?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 Ci_smarty automatisch in die Konfigurationsdatei laden autoload.php
$autoload['libraries']=array('ci_smarty');
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); }
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!