当前位置:首页 开发语言 正文
+1°

用Thinkphp开发的网站修改config.php文件后页面不更新问题

2012年07月03日 | 作者: 米豆网 - 1000seo | 分类: 开发语言 | 

config.php代码包含如下信息

<?php

return array(
‘METATITLE’=>’米豆网’,
‘SITENAME’=>’米豆网’,
‘AUTHOR’=>’丁运亮’,
‘WEB’=>’http://www.1000seo.com’ ,
‘COPYRIGHT’=>’copyright 2012 米豆网’, );
?>

修改后通过C(‘AUTHOR’)获取的值仍然是修改前的值,原来在第一次运行的时候这些信息就生成在了核心缓存文件~runtime.php中,故改写原config.php中的代码无效。 如需更改,可:

1. define( ‘NO_CACHE_RUNTIME’ , True);//不生成核心文件

2.修改后删除核心文件,重新运行重新生成.

ThinkPHP 正式版本开始引入了新的项目编译机制,所谓的项目编译机制是指系统第一次运行的时候会自动生成核心缓存文件 ~runtime.php 和项目编译缓存文件 ~app.php ,这些编译缓存文件把核心和项目必须的文件打包到一个文件中,并且去掉所有空白和注释代码,因为存在一个预编译的过程,所以还会进行一些相关的目录检测,对于不存在的目录可以自动生成,这个自动生成机制后面还会提到。当第二次执行的时候就会直接载入编译过的缓存文件,从而省去很多 IO 开销,加快执行速度。项目编译机制对运行没有任何影响,预编译操作和其他的目录检测机制只会执行一次,因此无论在预编译过程中做了多少复杂的操作,对后面的执行没有任何效率的缺失。   编译缓存文件,默认是自动生成在项目目录下面的 Runtime 目录下面。如果希望自己设置目录,可以在入口文件里面设置 RUNTIME_PATH 进行更改,例如

define( ‘RUNTIME_PATH’ , ‘./MyApp/temp/’ );

注意在 Linux 环境下面需要对 RUNTIME_PATH 目录设置可写权限。

核心编译缓存文件 ~runtime.php 包含的文件由系统的 core.php 文件决定,如果是采用了模式扩展的话,就由模式扩展入口 文件决定。默认的核心模式下面包含了下面的一些文件:系统定义文件 defines.php 、系统函数库 functions.php 、系统基类 Think 、异常基类 ThinkException 、日志类 Log 、应用类 App 、控制器基类 Action 、视图类 View 。   其他类库可以在操作方法中使用系统导入机制或者自动加载机制完成加载。

项目编译缓存文件 ~app.php 通常包含了下面的一些文件:项目配置文件(由惯例配置、项目配置合并而成)、项目公共函数文件 common.php 。每个项目还可以单独添加自己的项目编译文件列表,只需要在项目配置目录下面定义 app.php 文件,返回需要额外添加到项目编译缓存的文件列表数组即可。

注意在调试模式下面不会生成项目编译缓存,但是依然会生成核心缓存。 如果不希望生成核心缓存文件的话,可以在项目入口文件里面设置 NO_CACHE_RUNTIME ,例如:

define( ‘NO_CACHE_RUNTIME’ , True);

以及设置对编译缓存的内容是否进行去空白和注释,例如:

define( ‘STRIP_RUNTIME_SPACE’ , false);

则生成的编译缓存文件是没有经过去注释和空白的,仅仅是把文件合并到一起,这样的好处是便于调试的错误定位,建议部署模式的时候把上面的设置为 True 或者删除该定义。

本文固定链接:http://www.1000seo.com/soft/796
本文章由 米豆网 - 1000seo 于2012年07月03日发布在开发语言分类下,您可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
+复制链接 转载请注明:用Thinkphp开发的网站修改config.php文件后页面不更新问题-米豆网
关键字:, ,

好文章就要一起分享!

更多

目前共有1条留言

  • pretty

    1楼
    2014 年 08 月 27 日 20:28:22 回复

    这个有用,感谢了

发表评论

你的大名(必填)

你的邮箱(必填)

你的网站(选填)

评论内容(必填)

😉 😐 😡 😈 🙂 😯 🙁 🙄 😛 😳 😮 mrgreen.png 😆 💡 😀 👿 😥 😎 ➡ 😕 ❓ ❗