zoukankan      html  css  js  c++  java
  • Smarty 使用继承方式实现配置

    . 常用配置选项

    在使用Smarty模板引擎之前,我们必须先学习如何配置Smarty的选项。而在Smarty的常见选项中,我们首先必须了解4个最基本的目录选项。

    模板目录(template):本目录用于存储模板文件,需要渲染对应文件时把文件相对地址作为参数传入display方法即可。比如,我们有一个模板文件地址位于template/test/index.tpl,那么我们则应当使用“$smarty->display('test/index.tpl');”语句来渲染该模板。

    编译模板目录(template_c):本目录主要用于存储Smarty模板引擎产生的模板编译文件,Smarty也正是使用这种方法来提高执行效率的。当然,我们在部署项目时一定要注意该目录必须是可写的。

    缓存目录(cache):Smarty允许把展示过的模板缓存起来,使用此功能将进一步提高模板引擎的运行速度。当然,我们还可以通过设置cache_lifetime属性来控制缓存文件的有效时间。

    置目录(configs):这个目录可以用于保存Smarty模板引擎的配置文件,不过在实际项目中使用得比较少,我们经常会把配置放入项目统一的配置目录。

    在实际项目中我们经常使用继承和重载的方式来定制和配置我们自己的Smarty模板类。比如,在代码清单3-16中,我们就实现了一个自定义的My_Smarty类,此类中设置了Smarty模板的必要目录和缓存的生效时间。

    <?php
    require_once "Smarty.class.php";
    
    /**
     * 继承Smarty
     */
    class MySmarty extends Smarty{
        public function _construct()
        {
            parent::_construct();
            /**
         * 依次设置模板目录、编译模板目录、缓存目录、配置文件目录、插件目录。
         * 注意:在设置插件目录时要把Smarty自带的插件也包含进去。
         */
            $this->setTemplateDir(dirname(__FILE__).'/templates/')
            ->setCompileDir(dirname(__FILE__).'templates_c/')
            ->setCacheDir(dirname(__FILE__).'/cache/')
            ->setConfigDir(dirname(__FILE__).'/configs')
            ->setPluginsDir(
                    array(SMARTY_PLUGINS_DIR,
                             dirname(__FILE__) . '/plugins/'));
            /*依次设置左界定符、右界定符*/             
            $this->left_delimiter="{";
            $this->right_delimiter="}";
            
            $this->caching=true;
            $this->cache_lifetime=120;//秒
            
            // 设置默认变量  
            $this->assign('app_name', 'My App');  
        }
        
        public function enableDebug() {
            $this->debugging = TRUE;
          }
        
         
    }
    $T=new MySmarty();
    $T->testInstall();
  • 相关阅读:
    如何进行shell脚本正确性测试
    linux 重命名文件和文件夹
    linux 下 `dirname $0`
    五句话搞定JavaScript作用域
    Javascrpt
    css
    HTML
    python之sqlalchemy
    Python之路【第九篇】:Python操作 RabbitMQ、Redis、Memcache、SQLAlchemy
    Python之路【第八篇】:堡垒机实例以及数据库操作
  • 原文地址:https://www.cnblogs.com/youxin/p/3558268.html
Copyright © 2011-2022 走看看