# 编译缓存
模版文件被解析后,会临时保存到:
~~~
网站根目录/Temp/Compile
~~~
并且如果模版文件没有改变并且编译文件存在,不会重新编译,而是直接运行编译文件,提高运行速度
编译文件会将模版标签替换为PHP原生代码
替换前:
~~~
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8"/>
<title>
index
</title>
</head>
<body>
<h1>
smarty
</h1>
<h2><?php echo time(); ?></h2>
<h1>{$name}</h1>
<if condition="$person[0]['name']=='taotao'">
<h1>if taotao</h1>
<elseif condition="$person[0]['name']=='taotao2'"/>
<h1>if taotao2</h1>
<else/>
<h1>if taotao3 </h1>
</if>
<foreach name='person' item='v' key='k'>
<h1>name:{$v['name']} age:{$v['age']}</h1>
</foreach>
<include file="templates/footer.html" />
</body>
</html>
~~~
替换后:
~~~
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8"/>
<title>
index
</title>
</head>
<body>
<h1>
smarty
</h1>
<h2><?php echo time(); ?></h2>
<h1><?php echo $name; ?></h1>
<?php if($person[0]['name']=='taotao'): ?>
<h1>if taotao</h1>
<?php elseif($person[0]['name']=='taotao2'): ?>
<h1>if taotao2</h1>
<?php else: ?>
<h1>if taotao3 </h1>
<?php endif; ?>
<?php if(is_array($person)): foreach($person as $k=>$v): ?>
<h1>name:<?php echo $v['name']; ?> age:<?php echo $v['age']; ?></h1>
<?php endforeach; endif; ?>
<h1>footer----<?php echo $name; ?></h1>
</body>
</html>
~~~
- 序言
- 安装
- 基础
- 性能
- 例子
- 开发规范
- 目录结构
- 命名空间
- 自动加载
- 架构
- 入口文件
- 模块设计
- 系统常量
- 执行流程
- 路由
- 路由介绍
- 路由定义
- 规则路由
- 正则路由
- 配置
- 配置格式
- 配置文件
- 配置操作
- 控制器
- 新建控制器
- 地址访问
- 404
- 数据库
- 连接数据库
- 添加
- 删除
- 更新
- 查询
- 预处理
- 事务
- 模型
- 创建模型
- 实例化
- 插入数据
- 查询数据
- 修改数据
- 删除数据
- where条件
- field字段
- group分组
- order排序
- limit限制条数
- count统计
- avg平均数
- max最大值
- min最小值
- 链式操作
- 获取sql
- 视图
- 创建
- 传值
- 载入
- 函数
- 标签
- if
- foreach
- include
- 常量替换
- xss过滤
- 验证
- 创建验证类
- 验证规则
- 自定义错误
- 执行验证
- csrf防御
- 请求
- 请求相关名称
- 请求相关参数
- 请求传参
- 获取json数据
- 工具
- 文件上传
- 数据分页
- Url生成
- 缓存
- 模版编译
- 命令行
- 命令行控制器
- 数据库迁移