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

本文实例讲述了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程序设计有所帮助。

(0)

相关推荐

  • ThinkPHP中url隐藏入口文件后接收alipay传值的方法

    本文实例讲述了ThinkPHP中url隐藏入口文件后接收alipay传值的方法.分享给大家供大家参考.具体方法如下: 现在公司项目的需求变化多端,项目使用的是Thinkphp2.0,而conf.php中设置的URL_MODEL=2,为了兼容.htaccess和隐藏index.php,但在使用一些第三方接口时(例如支付宝或MSN开放平台),他们返回的参数往往含有一个?号,而URL_MODEL=2时,TP会自动将含有?的URL进行转换. 转换前:http://www.xxx.com/index.ph

  • Thinkphp通过一个入口文件如何区分移动端和PC端

    废话不多说了,直接给大家贴代码了,具体代码如下所示: <?php // 检测PHP环境 if(version_compare(PHP_VERSION,'5.3.0','<')) die('require PHP > 5.3.0 !'); // 开启调试模式 建议开发阶段开启 部署阶段注释或者设为false define('APP_DEBUG',True); define('MULTI_MODULE', false); // 获取当前文件所在的目录 define('DKSITE_TSDIR

  • ThinkPHP入口文件设置及相关注意事项分析

    本文实例分析了ThinkPHP入口文件设置及相关注意事项.分享给大家供大家参考.具体如下: 复制代码 代码如下: <?php  /*第一层意义:   *定义的是与thinkphp有关的核心框架文件目录路径,它可以通过这一个常量在以后运行的时候都去找这个路径,   *确保在以后运行过程中,绝对不会出现问题的(绝对不会对整个项目运行加载路径产生错误):   *第二层意义:   *做一个操作(放跳墙),是防止用直接访问我们的敏感文件,怎么避免呢,我就可以做一个页面包含整个   *敏感页面,用户的访问必

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

    本文实例讲述了thinkphp3.2中Lite文件替换框架入口文件或应用入口文件的方法.分享给大家供大家参考.具体分析如下: 3.2版本支持根据当前的运行环境生成Lite文件,可以替换框架的入口文件或者应用入口文件,提高运行效率. 我们的建议是在生产环境中关闭调试模式后生成Lite文件. 注意,目前SAE平台不支持直接生成Lite文件. 生成Lite文件 要生成Lite文件,需要在入口文件中增加常量定义: 复制代码 代码如下: define('BUILD_LITE_FILE',true); 默认

  • Laravel框架源码解析之入口文件原理分析

    本文实例讲述了Laravel框架源码解析之入口文件原理.分享给大家供大家参考,具体如下: 前言 提升能力的方法并非使用更多工具,而是解刨自己所使用的工具.今天我们从Laravel启动的第一步开始讲起. 入口文件 laravel是单入口框架,所有请求必将经过index.php define('LARAVEL_START', microtime(true)); // 获取启动时间 使用composer是现代PHP的标志 require __DIR__.'/../vendor/autoload.php

  • Spring 框架中注入或替换方法实现

    无状态 Bean 的作用域是 singleton 单实例,如果我们向 singleton 的 Bean A 注入 prototype 的 Bean B,并希望每次调用 Bean A 的 getBeanB() 时都能返回一个新的 Bean B ,这样的要求使用传统的注入方式是无法实现的 . 因为 singleton 的 Bean 注入关联 Bean 的动作只发生一次,虽然 Bean B 的作用域是 prototype 类型,但通过 getBeanB() 返回的对象还是最开始注入的那个 bean B

  • Python中搜索和替换文件中的文本的实现(四种)

    在本文中,我将给大家演示如何在 python 中使用四种方法替换文件中的文本. 方法一:不使用任何外部模块搜索和替换文本 让我们看看如何在文本文件中搜索和替换文本.首先,我们创建一个文本文件,我们要在其中搜索和替换文本.将此文件设为 Haiyong.txt,内容如下: 要替换文件中的文本,我们将使用 open() 函数以只读方式打开文件.然后我们将 t=read 并使用 read() 和 replace() 函数替换文本文件中的内容. 语法: open(file, mode='r') 参数: f

  • thinkphp3.x中display方法及show方法的用法实例

    本文实例讲述了thinkphp3.x中display方法及show方法的用法.分享给大家供大家参考,具体如下: 通过前面的文章在了解了控制器和模型操作后,我们开始熟悉视图部分,ThinkPHP中的视图主要就是指模板文件和模板引擎,本篇首先了解下模板文件以及是如何进行渲染输出的. 一.模板定义 为了对模板文件更加有效的管理,ThinkPHP对模板文件进行目录划分,默认的模板文件定义规则是: 模板目录/[分组名/][模板主题/]模块名/操作名+模板后缀 模板目录默认是项目下面的Tpl, 当定义分组的

  • thinkphp3.x中session方法的用法分析

    本文实例讲述了thinkphp3.x中session方法的用法.分享给大家供大家参考,具体如下: 一.Session方法用于Session 设置.获取.删除和管理操作. Session 用于Session 设置.获取.删除和管理操作 用法 session($name, $value='') 参数 name(必须):如果传入数组 则表示进行session初始化,如果传入null表示清空当前session,如果是字符串则表示session赋值.获取或者操作. Value(可选):要设置的sessio

  • .Net Core中使用Autofac替换自带的DI容器的示例

    目录 项目创建 方案演示 .Net Core自带DI 不同的特性 批量注入 属性注入 存储并提取容器实例 为什么叫浅谈呢?就是字面上的意思,讲得比较浅,又不是不能用(这样是不对的)!!! Aufofac大家都不陌生了,说是.Net生态下最优秀的IOC框架那是一点都过分.用的人多了,使用教程也十分丰富,官网教程也比较详细(如果英文功底还不错的话). 那我为什么还要写这样一篇博客呢,一是用作学习笔记,二就是闲的. 废话不多说,开始正文 项目创建 云创建一个.Net Core Api项目,然后再添加一

  • cmd replace 文件替换使用说明

    帮助信息: 复制代码 代码如下: 替换文件. REPLACE [drive1:][path1]filename [drive2:][path2] [/A] [/P] [/R] [/W] REPLACE [drive1:][path1]filename [drive2:][path2] [/P] [/R] [/S] [/W] [/U] [drive1:][path1]filename 指定源文件. [drive2:][path2] 指定要替换文件的目录. /A 把新文件加入目标目录.不能和/S 或

  • 用vbs将本地文件替换为在文件服务器上找到的新版本

    问: 您好,脚本专家!如何将本地文件的修改日期与文件服务器上的副本进行比较,并且,如果本地文件的版本更旧,将其替换为文件服务器上的版本? -- DC 答: 您好,DC.让我们想想,您是想将某些旧的东西替换为新的.不知道为什么,这让我们感到很不安. 嗯,并不是因为脚本专家正在变老,这得提醒您,我们没有.毕竟,膝盖和后背就应该是这么吱吱作响的:不然怎么知道它们在发挥作用呢?!? 注意:据说,当爱斯基摩人老得不中用的时候,他们会被抛弃在大块浮冰上任其自生自灭.幸好脚本专家都不是爱斯基摩人,而我们每天都

  • thinkphp3.x中cookie方法的用法分析

    本文实例分析了thinkphp3.x中cookie方法的用法.分享给大家供大家参考,具体如下: 一.cookie函数也是一个多元化操作函数,完成cookie的设置.获取和删除操作. Cookie 用于Cookie 设置.获取.删除操作: 用法: cookie($name, $value='', $option=null) 参数: name(必须):要操作的cookie变量 value(可选):要设置的cookie值 option(可选):传入的cookie设置参数,默认为空 返回值 见详(根据具

随机推荐