thinkphp3.2中Lite文件替换框架入口文件或应用入口文件的方法


Posted in PHP onMay 21, 2015

本文实例讲述了thinkphp3.2中Lite文件替换框架入口文件或应用入口文件的方法。分享给大家供大家参考。具体分析如下:

3.2版本支持根据当前的运行环境生成Lite文件,可以替换框架的入口文件或者应用入口文件,提高运行效率。

我们的建议是在生产环境中关闭调试模式后生成Lite文件。

注意,目前SAE平台不支持直接生成Lite文件。

生成Lite文件

要生成Lite文件,需要在入口文件中增加常量定义:

define('BUILD_LITE_FILE',true);

默认情况下,再次运行后会在Runtime目录下面生成一个lite.php文件。

如果你需要修改Lite文件的位置或者名称,可以在应用配置文件中增加配置如下:

'RUNTIME_LITE_FILE'=> APP_PATH.'lite.php'

配置后,生成的Lite文件的位置为 APP_PATH.'lite.php'。

Lite文件的编译文件内容是系统默认的,如果希望改变或者增加其他的编译文件的话,可以在外部定义编译列表文件,例如: 我们在应用配置目录下面增加lite.php定义如下:

return array(
  THINK_PATH.'Common/functions.php',
  COMMON_PATH.'Common/function.php',
  CORE_PATH . 'Think'.EXT,
  CORE_PATH . 'Hook'.EXT,
  CORE_PATH . 'App'.EXT,
  CORE_PATH . 'Dispatcher'.EXT,
  CORE_PATH . 'Model'.EXT,
  CORE_PATH . 'Log'.EXT,
  CORE_PATH . 'Log/Driver/File'.EXT,
  CORE_PATH . 'Route'.EXT,
  CORE_PATH . 'Controller'.EXT,
  CORE_PATH . 'View'.EXT,
  CORE_PATH . 'Storage'.EXT,
  CORE_PATH . 'Storage/Driver/File'.EXT,
  CORE_PATH . 'Exception'.EXT,
  BEHAVIOR_PATH . 'ParseTemplateBehavior'.EXT,
  BEHAVIOR_PATH . 'ContentReplaceBehavior'.EXT,
);

所有在lite.php文件中定义的文件都会纳入Lite文件的编译缓存中。你还可以对生成的lite文件进行修改。

如果你修改了框架文件和应用函数和配置文件的话,需要删除Lite文件重新生成。

由于SAE等云平台不支持文件写入,因此不支持直接生成Lite文件。

替换入口

Lite文件可以用于替换框架入口文件或者应用入口文件。

替换框架入口文件

Lite文件生成后,就可以把原来的应用入口文件中的框架入口文件修改如下:

require './ThinkPHP/ThinkPHP.php';

改成:
require './Runtime/lite.php';

替换Lite文件后,应用编译缓存不再需要。

替换应用入口文件

如果你的入口文件没有其他代码和逻辑的话,还可以直接把lite.php文件作为应用的入口文件访问。 把lite.php 文件复制到应用入口文件的相同目录,并直接改名为index.php即可和原来一样正常访问(原来的应用入口文件可以备份以备用于重新生成Lite文件的时候使用)。

注意:如果你的环境或者目录位置发生变化,以及更改了核心框架和应用函数、配置等文件后,则需要重新生成Lite文件。

希望本文所述对大家的基于ThinkPHP框架的php程序设计有所帮助。

PHP 相关文章推荐
Search Engine Friendly的URL设计
Oct 09 PHP
由php的call_user_func传reference引发的思考
Jul 23 PHP
php打造属于自己的MVC框架
Mar 07 PHP
解析yahoo邮件用phpmailer发送的实例
Jun 24 PHP
php列出mysql表所有行和列的方法
Mar 13 PHP
PHP mysql事务问题实例分析
Jan 18 PHP
Symfony2框架学习笔记之HTTP Cache用法详解
Mar 18 PHP
PHP使用PDO操作数据库的乱码问题解决方法
Apr 08 PHP
PHP制作登录异常ip检测功能的实例代码
Nov 16 PHP
Yii CDBCriteria常用方法实例小结
Jan 19 PHP
Laravel模型间关系设置分表的方法示例
Apr 21 PHP
PHP数组基本用法与知识点总结
Jun 02 PHP
php通过exif_read_data函数获取图片的exif信息
May 21 #PHP
PHP图像处理类库MagickWand用法实例分析
May 21 #PHP
php使用标签替换的方式生成静态页面
May 21 #PHP
php eval函数一句话木马代码
May 21 #PHP
php结合正则批量抓取网页中邮箱地址
May 19 #PHP
php实现模拟登陆方正教务系统抓取课表
May 19 #PHP
PHP IDE phpstorm 常用快捷键
May 18 #PHP
You might like
基于mysql的bbs设计(二)
2006/10/09 PHP
windows下升级PHP到5.3.3的过程及注意事项
2010/10/12 PHP
CI框架Session.php源码分析
2014/11/03 PHP
php调用mysql存储过程实例分析
2014/12/29 PHP
浅谈PHP中pack、unpack的详细用法
2018/03/12 PHP
PHP使用ActiveMQ实现消息队列的方法详解
2019/05/31 PHP
在视频前插入广告
2006/11/20 Javascript
如何在Mozilla Gecko 用Javascript加载XSL
2007/01/09 Javascript
Javascript倒计时代码
2010/08/12 Javascript
一个JavaScript操作元素定位元素的实例
2014/10/29 Javascript
基于jquery实现在线选座订座之影院篇
2015/08/24 Javascript
基于replaceChild制作简单的吞噬特效
2015/09/21 Javascript
js倒计时简单实现方法
2015/12/17 Javascript
实例讲解javascript注册事件处理函数
2016/01/09 Javascript
详解JavaScript的闭包、IIFE、apply、函数与对象
2016/12/21 Javascript
vue 2.0封装model组件的方法
2017/08/03 Javascript
react.js 父子组件数据绑定实时通讯的示例代码
2017/09/25 Javascript
Node.js中出现未捕获异常的处理方法
2020/06/29 Javascript
v-slot和slot、slot-scope之间相互替换实例
2020/09/04 Javascript
[04:44]显微镜下的DOTA2第二期——你所没有注意到的细节
2014/06/20 DOTA
python使用win32com在百度空间插入html元素示例
2014/02/20 Python
Python实现对百度云的文件上传(实例讲解)
2017/10/21 Python
python多线程调用exit无法退出的解决方法
2019/02/18 Python
学习python的前途 python挣钱
2019/02/27 Python
python 动态调用函数实例解析
2019/10/21 Python
Pytorch之parameters的使用
2019/12/31 Python
简单介绍HTML5中audio标签的使用
2015/09/24 HTML / CSS
Expedia泰国:预订机票、酒店和旅游包(航班+酒店)
2016/09/27 全球购物
加拿大快时尚零售商:Ardene
2018/02/14 全球购物
以工厂直接定价的传奇性能:Ben Hogan Golf
2019/01/04 全球购物
如何在.net Winform里面显示PDF文档
2012/09/11 面试题
保护环境倡议书范文
2014/05/13 职场文书
2016五一手机促销广告语
2016/01/28 职场文书
如何用JavaScript学习算法复杂度
2021/04/30 Javascript
一级电子管军用接收机测评
2022/04/05 无线电
《废话连篇——致新手》——chinapizza
2022/04/05 无线电