# 編譯緩存
模版文件被解析后,會臨時保存到:
~~~
網站根目錄/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生成
- 緩存
- 模版編譯
- 命令行
- 命令行控制器
- 數據庫遷移