`
xombat
  • 浏览: 163674 次
  • 性别: Icon_minigender_1
  • 来自: 乌托邦
社区版块
存档分类
最新评论

smarty什么时候会从新编译template

PHP 
阅读更多
从smarty.class.php文件中的下列代码可以看出来:

   /**
     * test if resource needs compiling
     *
     * @param string $resource_name
     * @param string $compile_path
     * @return boolean
     */
    function _is_compiled($resource_name, $compile_path)
    {
        if (!$this->force_compile && file_exists($compile_path)) {
            if (!$this->compile_check) {
                // no need to check compiled file
                return true;
            } else {
                // get file source and timestamp
                $_params = array('resource_name' => $resource_name, 'get_source'=>false);
                if (!$this->_fetch_resource_info($_params)) {
                    return false;
                }
                if ($_params['resource_timestamp'] <= filemtime($compile_path)) {
                    // template not expired, no recompile
                    return true;
                } else {
                    // compile template
                    return false;
                }
            }
        } else {
            // compiled template does not exist, or forced compile
            return false;
        }
    }


首先会看,是否设置了force_compile,如果为true,那么每次都要进行重新编译。
然后看是否要compile_check,如果为false,那么永远不会进行编译。
如果为true,那么进行检查,检查什么呢?检查文件的修改时间,如果编译结果的时间>=原模板文件的修改时间,那么不进行重新编译,否则进行编译。

关键在于这个“等号”,我们应该将这个“=”去掉呢?还是他真的有必要?

有事,待续...
分享到:
评论

相关推荐

    (Source_Code)Smarty PHP Template Programming and Applications

    本资源包包含了"Smarty PHP Template Programming and Applications"这本书的随书源代码,这将帮助读者深入理解和实践Smarty模板引擎的使用。 Smarty的核心概念是模板、配置文件和编译后的PHP代码。模板是HTML文件...

    smarty

    2. **编译型模板**:Smarty在运行时会将模板编译成PHP代码,生成的文件混合了HTML和PHP,使得执行更加高效。只有当源模板文件有改动时,才会重新编译。 3. **缓存机制**:Smarty支持缓存技术,可以将最终的HTML页面...

    Smarty-3.1.21

    2. **预处理和编译**:Smarty会先将模板文件编译成PHP代码,然后执行这个编译后的代码,以提高性能。模板的编译结果会被缓存,下次请求时可直接使用,避免了重复编译。 3. **安全机制**:为了防止模板注入,Smarty...

    smarty模板引擎3.1

    2. 模板编译:Smarty会先将模板编译成PHP代码,再执行,提高执行效率。 3. 自动缓存:开启缓存后,Smarty会在首次渲染后保存结果,下次请求时直接读取缓存,减少服务器负载。 4. 版本控制:通过在模板URL中加入...

    smarty下载及入门教程

    Smarty的最新版本可能会随着时间的推移而更新,文中提到了Smarty 2.6.x系列的几个版本,例如2.6.18、2.6.17和2.6.16等。要获取最新的Smarty版本,开发者应访问其官方网站或通过GitHub等开源平台进行下载。安装过程...

    Smarty_smarty_

    6. **配置文件**:配置文件用于设置Smarty的全局属性,如模板目录、编译目录等。配置可以通过`config_load`函数加载,并在模板中使用`{config_load}`访问配置变量。 7. **控制台调试**:Smarty提供了一套调试工具,...

    smarty-3.1.29

    6. **模板编译**:Smarty会将模板文件编译成PHP代码,然后执行这些编译后的代码,提高了模板处理的效率。 7. **配置选项**:Smarty有许多可配置的选项,比如模板目录、编译目录、缓存目录等,可以根据项目需求进行...

    smarty3.0,smarty最新版本

    2. **配置系统**:Smarty 3.0提供了一个强大的配置系统,允许开发者定义模板目录、编译目录、缓存目录等。这使得项目配置更加灵活,可以根据不同环境进行定制。 3. **模板继承**:通过使用`{extends}`指令,模板...

    Smarty-3.1.18

    6. **编译与安全**:Smarty首先会将模板文件编译为PHP代码,然后执行生成的PHP文件。这样既提高了性能,也提供了额外的安全层,因为模板中的PHP代码不会直接被执行。同时,Smarty还提供了一些安全设置,如`secure_...

    smarty-3.1.30.tar.gz

    8. **预编译和编译优化**:Smarty会预先编译模板文件为PHP代码,然后执行这些代码,提高了运行效率。 9. **模板调试**:提供详细的错误报告和调试模式,帮助开发者找出模板中的问题。 在解压"smarty-3.1.30"文件后...

    Smarty-3.1.19

    - Smarty特点:Smarty使用了独特的变量语法,如`{$variable}`,并支持缓存、预编译、模板继承等特性,有效提高了开发效率和性能。 2. **Smarty-3.1.19的特性** - 更新与修复:这个版本可能包含了错误修复、性能...

    李炎恢Smarty专题精讲视频课程源码

    5. **缓存(Caching)**:Smarty可以缓存编译后的模板,提高页面加载速度。对于不经常变动的内容,缓存机制能大大提高性能。 6. **预处理和后处理(Pre- and Post-Processing)**: Smarty 提供了预处理器和后...

    smarty中文手册 双语版

    5. **编译与缓存(Compilation & Caching)**:Smarty会将模板编译成PHP代码,提高执行效率。同时,它还支持缓存机制,对于不常变动的数据,可以直接从缓存中读取,减少数据库查询。 6. **安全控制(Security ...

    Smarty3入门Demo

    在这个文件中,开发者通常会初始化Smarty类,设置模板目录,编译目录等参数,并加载模板文件,然后渲染并输出到浏览器。通过查看`demo1.php`的代码,我们可以学习如何配置和使用Smarty实例。 `smarty.txt`可能是一...

    smarty最新版3.1.16

    其次,描述中的“也不需要指定templates_c文件夹,会自动生成”,指的是Smarty现在自动处理编译结果的存储位置。通常,Smarty会将模板文件编译成PHP代码,然后存储在templates_c目录下,以提高后续请求的执行速度。...

    Laravel开发-smarty

    4. **fis-smarty插件**:这个插件可能扩展了Smarty的功能,使其能够理解和处理fis的构建规则,比如对Smarty模板进行预处理、编译和优化。 5. **自动化构建**:结合fis,开发者可以设置构建脚本,实现模板文件的自动...

    php+smarty输出新闻列表

    2. Smarty初始化:引入Smarty类库,创建实例,并配置相关参数,如模板目录、编译目录等: ```php require_once 'path/to/Smarty.class.php'; $smarty = new Smarty(); $smarty-&gt;template_dir = 'path/to/...

    smarty模版及安装方法

    - 显示模板:`$smarty-&gt;display('template_file.tpl');` - 清除缓存:`$smarty-&gt;clearAllCache();` - 自定义函数:通过`register_function`或`register_block`注册自定义的模板函数或块。 5. **示例代码** ``` ...

    Smarty+smarty中文手册

    Smarty的核心理念是"分离视图(模板)和控制器(逻辑)",这是一种常见的MVC(Model-View-Controller)设计模式的应用。 Smarty-2.6.18.tar.gz 是Smarty的一个特定版本,即2.6.18版的源码压缩包。.tar.gz格式是一种...

Global site tag (gtag.js) - Google Analytics