项目编译

ThinkPHP 3.2.2

项目编译

应用编译机制作为ThinkPHP独创的功能特色,从1.0版本就延续至今,3.2版本的编译机制更加具有特色。

应用编译缓存

编译缓存的基础原理是第一次运行的时候把核心需要加载的文件去掉空白和注释后合并到一个文件中,第二次运行的时候就直接载入编译缓存而无需载入众多的核心文件。当第二次执行的时候就会根据当前的应用模式直接载入编译过的缓存文件,从而省去很多IO开销,加快执行速度。

项目编译机制对运行没有任何影响,预编译机制只会执行一次,因此无论在预编译过程中做了多少复杂的操作,对后面的执行没有任何效率的缺失。

编译缓存文件默认生成在应用目录的Runtime目录下面,我们可以在Application/Runtime目录下面看到有一个common~runtime.php文件,这个就是普通模式的编译缓存文件。如果你当前运行在其他的应用模式下面,那么编译缓存文件就是:应用模式~runtime.php

例如,如果你当前用的是SAE模式,那么生成的编译缓存文件则会变成sae~runtime.php

普通模式的编译缓存的内容包括:系统函数库、系统基础核心类库、核心行为类库、项目函数文件,当然这些是可以改变的。

运行Lite文件

这是3.2.1版本的新特性。 运行Lite文件的作用是替换框架的入口文件或者替换应用入口文件,提高运行效率。因为默认生成的文件名为lite.php,并且是运行时动态生成,因此称之为运行Lite文件

Lite文件的特点包括:

  • 运行时动态生成;
  • 常量定义为针对当前环境;
  • 支持定义需要编译的文件列表;
  • 支持生成Lite文件的名称;

如何生成Lite文件,请参考部署部分的替换入口