# 應用模式
[上一頁](# "上一頁")[下一頁](# "下一頁")
應用模式提供了對核心框架進行改造的機會,可以讓你的應用適應更多的環境和不同的要求。
每個應用模式有自己的模式定義文件,用于配置當前模式需要加載的核心文件和配置文件,以及別名定義、行為擴展定義等等。根據模式定義文件的定義位置和入口是否需要定義模式,可以分為**顯式應用模式**和**隱含應用模式**。
### 顯式應用模式
顯式應用模式的模式定義文件位于`ThinkPHP\Mode`目錄,如果我們要增加一個應用模式,只需要在該目錄下面定義一個模式定義文件即可,下面是一個典型的模式定義文件(lite.php):
~~~
return array(
// 配置文件
'config' => array(
THINK_PATH.'Conf/convention.php', // 系統慣例配置
CONF_PATH.'config.php', // 應用公共配置
),
// 別名定義
'alias' => array(
'Think\Exception' => CORE_PATH . 'Exception'.EXT,
'Think\Model' => CORE_PATH . 'Model'.EXT,
'Think\Db' => CORE_PATH . 'Db'.EXT,
'Think\Cache' => CORE_PATH . 'Cache'.EXT,
'Think\Cache\Driver\File' => CORE_PATH . 'Cache/Driver/File'.EXT,
'Think\Storage' => CORE_PATH . 'Storage'.EXT,
),
// 函數和類文件
'core' => array(
MODE_PATH.'Lite/functions.php',
COMMON_PATH.'Common/function.php',
MODE_PATH . 'Lite/App'.EXT,
MODE_PATH . 'Lite/Dispatcher'.EXT,
MODE_PATH . 'Lite/Controller'.EXT,
MODE_PATH . 'Lite/View'.EXT,
CORE_PATH . 'Behavior'.EXT,
),
// 行為擴展定義
'tags' => array(
'view_parse' => array(
'Behavior\ParseTemplate', // 模板解析 支持PHP、內置模板引擎和第三方模板引擎
),
'template_filter'=> array(
'Behavior\ContentReplace', // 模板輸出替換
),
),
);
~~~
我們在ThinkPHP/Mode/Lite目錄下面創建`functions.php`函數庫文件,以及`App.class.php`、`Dispatcher.class.php`、`Controller.class.php`和`View.class.php`,這些類都是針對我們新的應用模式定制的核心類,但是和標準模式的命名空間是一致的,也就是說都在Think命名空間下面。
> ThinkPHP/Mode/Lite目錄用于存放該應用模式下面的所有自定義文件。
應用模式定義文件定義好后,我們就可以在應用中使用該模式了,例如:
~~~
define('MODE_NAME','lite');
define('APP_PATH','./Application/');
require './ThinkPHP/ThinkPHP.php';
~~~
### 隱含應用模式
隱含應用模式的模式定義文件位于應用的配置目錄下面 `Application/Common/Conf/core.php`,模式定義文件和顯式應用模式的定義文件一樣。使用隱含應用模式的時候,不需要在入口文件中定義MODE_NAME,或者說存在隱含應用模式定義文件的時候,MODE_NAME定義無效。
> 注意:如果應用中定義的應用模式需要使用其他的存儲類型,需要在入口文件中定義。
~~~
define('STORAGE_TYPE','Bae');
~~~
[上一頁](# "上一頁")[下一頁](# "下一頁")
- 序言
- 基礎
- 獲取ThinkPHP
- 環境要求
- 目錄結構
- 入口文件
- 自動生成
- 模塊
- 控制器
- 開發規范
- 配置
- 配置格式
- 配置加載
- 讀取配置
- 動態配置
- 擴展配置
- 批量配置
- 架構
- 模塊化設計
- URL模式
- 多層MVC
- CBD模式
- 命名空間
- 自動加載
- 應用模式
- 項目編譯
- 系統流程
- 路由
- 路由定義
- 規則路由
- 正則路由
- 靜態路由
- 閉包支持
- 實例說明
- 控制器
- 控制器定義
- 前置和后置操作
- Action參數綁定
- 偽靜態
- URL大小寫
- URL生成
- AJAX返回
- 跳轉和重定向
- 輸入變量
- 請求類型
- 空操作
- 空控制器
- 操作綁定到類
- 模型
- 模型定義
- 模型實例化
- 字段定義
- 連接數據庫
- 切換數據庫
- 分布式數據庫支持
- 連貫操作
- WHERE
- TABLE
- ALIAS
- DATA
- FIELD
- ORDER
- LIMIT
- PAGE
- GROUP
- HAVING
- JOIN
- UNION
- DISTINCT
- LOCK
- CACHE
- COMMENT
- RELATION
- 命名范圍
- CURD操作
- 數據創建
- 數據寫入
- 數據讀取
- 數據更新
- 數據刪除
- ActiveRecord
- 字段映射
- 查詢語言
- 查詢方式
- 表達式查詢
- 快捷查詢
- 區間查詢
- 組合查詢
- 統計查詢
- SQL查詢
- 動態查詢
- 子查詢
- 自動驗證
- 自動完成
- 參數綁定
- 虛擬模型
- 模型分層
- 視圖模型
- 關聯模型
- 高級模型
- Mongo模型
- 視圖
- 模板定義
- 模板主題
- 模板賦值
- 模板渲染
- 獲取模板地址
- 獲取內容
- 模板引擎
- 模板
- 變量輸出
- 系統變量
- 使用函數
- 默認值輸出
- 使用運算符
- 標簽庫
- 模板繼承
- 修改定界符
- 三元運算
- 包含文件
- 內置標簽
- Volist標簽
- Foreach標簽
- For標簽
- Switch標簽
- 比較標簽
- 范圍判斷標簽
- IF標簽
- Present標簽
- Empty標簽
- Defined標簽
- Assign標簽
- Define標簽
- 標簽嵌套
- import標簽
- 使用PHP代碼
- 原樣輸出
- 模板注釋
- 模板布局
- 模板替換
- 調試
- 調試模式
- 異常處理
- 日志記錄
- 頁面Trace
- Trace方法
- 變量調試
- 性能調試
- 錯誤調試
- 模型調試
- 緩存
- 數據緩存
- 快速緩存
- 查詢緩存
- SQL解析緩存
- 靜態緩存
- 安全
- 輸入過濾
- 表單合法性檢測
- 表單令牌
- 防止SQL注入
- 目錄安全文件
- 保護模板文件
- 上傳安全
- 防止XSS攻擊
- 其他安全建議
- 擴展
- 類庫擴展
- 驅動擴展
- 緩存驅動
- 數據庫驅動
- 日志驅動
- Session驅動
- 存儲驅動
- 模板引擎驅動
- 標簽庫驅動
- 行為擴展
- 標簽擴展
- Widget擴展
- 應用模式
- 部署
- PATH_INFO支持
- URL重寫
- 模塊部署
- 域名部署
- 入口綁定
- 替換入口
- 專題
- SESSION支持
- Cookie支持
- 多語言支持
- 數據分頁
- 文件上傳
- 驗證碼
- 圖像處理
- RESTFul
- RPC
- SAE
- IP獲取和定位
- 附錄
- 常量參考
- 配置參考
- 升級指導
- 更新日志
- 鳴謝
- 關于