# 更新日志
[TOC=2,3]
## 5.1.4
* 優化上傳邏輯,已傳文件更新文件名
* 優化系統鉤子初始化
* 修復編輯器錨點處理錯誤
* 修復部分系統函數判斷問題
* 修復tp5.1.38前臺控制器報錯
* 修復tp5.1.38下郵件驗證碼發不出
## 5.1.3
* 增加`CMF_DATA`常量(注意升級)
* 增加插件路由功能
* 增加插件URL美化功能
* 修復app_init鉤子引起的命令行報錯
* 修復API中文件url轉化錯誤
## 5.1.2
[核心]
* 升級tp到`5.1.37`
* 優化`slides,noslides`標簽
* 修復頭像地址獲取函數
* 優化上傳類支持API文件上傳
* 封裝后臺菜單,應用鉤子,用戶行為導入
* 增加應用自動安裝
* 優化后臺百度地圖鏈接支持https
[API]
* 優化文件上傳,支持云存儲
* 修復積分日志接口數據返回錯誤
* 修復鉤子不加載問題
* 修復API跨域報錯問題
## 5.1.1
[核心]
* `composer.json` extra 增加`think-config`配置
* 修復API UserLikeModel繼承錯誤類
* 優化后臺菜單 url 生成
* 增加Linux下全新安裝時data目錄不可寫提示
* 修復插件模板常量`__ROOT__`不替換
* 增加`swoole`擴展鉤子檢測
* 修復插件API基類報錯#577
* 優化應用初始化流程
* 優化行為加載流程
## 5.1.0
[核心]
* 更改框架協議為`MIT`,讓你更自由地飛
* 升級`TP`到`5.1.34`
* 獨立安裝應用為`composer`包
* 移除portal應用,請到`https://github.com/thinkcmf/demos`下載
* 移除`simpleboot3`模板,請到`https://github.com/thinkcmf/demos`下載
* 移除`phpoffice/phpexcel`包,請使用`phpoffice/phpspreadsheet`
* 增加`demo`應用,方便開發者學習
* 增加插件`@adminMenuRoot`注解支持
* 增加`app,api和插件`composer第三方庫支持
* 增加后臺模板動態設置功能
* 使用`composer classmap`做相關類的映射
* 更改所有`thinkcmf`包版本號依賴
* 優化清除緩存,清除opcache緩存
* 優化`cmf_set_dynamic_config`兼容5.0和5.1
* 升級`PHPMailer`使用`PHPMailer 6.0`(注意類的引入變化)
* 修復路由是否存在檢測問題
* 修復url美化由于后臺權限設置可能引起的漏洞(漏洞編號CVE-2019-6713 感謝topsec(zhan_ran)的及時反饋)
* 修復子導航標簽報錯
* 修復數據庫對象實例化不當導致的問題
* 修復`BaseController`排序批量更新
* 修復新建管理員登錄時報錯
* 取消`THINKCMF_VERSION`常量,請使用`cmf_version()`
* 取消`PLUGINS_PATH`常量,請使用`WEB_ROOT.'plugins/`
[swoole]
* 增加`websocket`演示
* 優化`swoole`配置初始化
* 優化`swoole`下內容輸出
* 更改默認緩存大小為128M
* 修復`swoole`如果控制器返回內容為空報錯問題
* 修復`swoole`下核心包路由注冊位置
* 修復`swoole`下后臺風格無法設置
## 5.1.0-beta
[核心]
* 升級`ThinkCMF 5.0`到`ThinkPHP 5.1`
- 序言
- 基礎
- 安裝ThinkCMF
- 為了更爽
- 目錄結構
- 入口文件
- 第三方庫
- 開發規范
- 數據庫規范
- 調試模式
- URL訪問
- 應用
- 配置
- 路由
- 控制器
- 控制器定義
- 控制器模板賦值
- 控制器模板渲染
- 前臺控制器
- 前臺用戶控制器
- 后臺控制器
- 跳轉,AJAX返回和重定向
- URL生成
- 請求
- 請求信息
- 輸入變量
- 請求類型
- 獲取請求頭信息
- 偽靜態
- 更多
- 系統函數
- cmf_auth_check 用戶權限檢查
- cmf_captcha_check圖片驗證碼驗證
- cmf_check_mobile 檢查手機號
- cmf_check_user_action 用戶訪問控制
- cmf_check_verification_code 數字驗證碼檢查
- cmf_clear_cache清空系統緩存
- cmf_clear_verification_code 清除數字驗證碼
- cmf_compare_password 用戶密碼比較
- cmf_current_lang 判斷當前語言包
- cmf_generate_user_token生成用戶token
- cmf_get_admin_style 獲取后臺風格
- cmf_get_content_images 獲取HTML圖片
- cmf_get_current_admin_id 登錄管理員ID
- cmf_get_current_admin_theme獲取當前后臺模板
- cmf_get_current_theme獲取前臺當前模板
- cmf_get_current_user 獲取登錄用戶信息
- cmf_get_current_user_id 登錄用戶ID
- cmf_get_domain返回帶協議的域名
- cmf_get_file_download_url 獲取文件下載鏈接
- cmf_get_file_extension 獲取文件擴展名
- cmf_get_image_url 獲取圖片 URL
- cmf_get_option 獲取系統配置
- cmf_get_plugin_class 獲取插件類名
- cmf_get_plugin_config獲取插件配置
- cmf_get_root 網站根目錄
- cmf_get_site_info 獲取網站信息
- cmf_get_theme_path獲取前臺模板根目錄
- cmf_get_upload_setting獲取上傳配置
- cmf_get_user_avatar_url 獲取用戶頭像URL
- cmf_get_verification_code 生成數字驗證碼
- cmf_is_android 判斷是否為安卓手機
- cmf_is_ios 判斷是否為ios訪問
- cmf_is_ipad 判斷是否為ipad訪問
- cmf_is_iphone 判斷是否為iphone訪問
- cmf_is_mobile 判斷是否為手機
- cmf_is_user_login 判斷用戶是否登錄
- cmf_is_wechat 判斷是否為微信
- cmf_password 密碼加密
- cmf_plugin_url 插件URL生成
- cmf_random_string隨機字符串生成
- cmf_replace_content_file_url 替換編輯器文件地址
- cmf_scan_dir 替代scan_dir的方法
- cmf_send_email 發送郵件
- cmf_set_dynamic_config 設置動態配置
- cmf_set_option 設置系統配置
- cmf_split_sql 切分SQL文件
- cmf_update_current_user 更新當前用戶信息
- cmf_url_encode 生成base64的url
- cmf_verification_code_log 驗證碼發送日志
- cmf_version獲取版本號
- get_client_ip 獲取客戶端IP地址
- hook 添加鉤子
- 數據庫
- 數據庫配置
- 添加數據
- 更新數據
- 查詢數據
- 刪除數據
- 事務操作
- 更多數據庫操作
- 模型
- 模型定義
- 添加數據
- 更新數據
- 查詢數據
- 刪除數據
- 應用
- 應用的概念
- 應用開發流程
- 導航共享
- 幾個重要基類
- 后臺菜單注解
- 用戶操作配置
- URL 規則配置
- 應用第三方庫
- API
- 規范
- 狀態碼說明
- 版本號
- 資源控制器模板
- 成功返回
- 錯誤返回
- API路由
- API基類控制器
- API應用開發流程
- API第三方庫
- 模板
- 模板常量
- 模板標簽
- 變量輸出
- 系統變量
- 請求參數
- 使用函數
- 使用默認值
- 使用運算符
- 三元運算
- 原樣輸出
- 模板注釋
- 模板目錄
- 包含文件
- 模板布局
- 模板繼承
- 網站信息
- 內置標簽
- 循環輸出標簽
- 比較標簽
- 條件判斷
- 標簽嵌套
- 原生PHP
- 定義標簽
- CMF標簽
- 導航標簽
- 子導航標簽
- 驗證碼標簽
- 幻燈片標簽
- 鉤子標簽
- 友情鏈接標簽
- 分頁標簽
- 傻瓜式模板
- 什么是傻瓜式模板
- 模板描述文件
- 模板文件配置
- 模板變量類型
- 模板變量數據源
- 導航模板數據源
- 導航菜單模板數據源
- 幻燈片模板數據源
- 模板切換
- 插件
- 插件鉤子
- 核心鉤子
- 前臺模板鉤子
- 后臺鉤子
- send_mobile_verification_code
- comment
- guestbook
- admin_dashboard
- switch_theme
- admin_login
- admin_init
- home_init
- 插件類主文件
- 插件開發流程
- 插件配置
- 插件控制器
- 插件后臺管理控制器
- 插件后臺菜單
- 插件視圖
- 插件數據庫模型
- 插件多語言
- 插件API控制器
- 插件第三方庫
- 插件URL生成
- 前端
- Wind.js
- 前端組件
- js-ajax-form
- js-ajax-delete
- js-ajax-dialog-btn
- js-count-btn
- js-date
- js-datetime
- js-bootstrap-date
- js-bootstrap-datetime
- 專題
- 緩存
- Session
- Cookie
- 分頁
- 驗證碼
- 文件上傳
- 第三方擴展
- Swoole
- 附錄
- 升級日志
- 升級指導