下载APP 随时随地学编程
返回 首页

ThinkPHP3.2.3完全开发手册

开始阅读
目录

基础

获取ThinkPHP
ThinkPHP环境要求
ThinkPHP目录结构
ThinkPHP入口文件
自动生成
ThinkPHP模块
ThinkPHP控制器
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
USING
fetchSql
TOKEN
STRICT
INDEX
命名范围

CURD操作

数据创建
数据写入
数据读取
数据更新
数据删除
ActiveRecord
字段映射

查询语言

查询方式
表达式查询
快捷查询
区间查询
组合查询
统计查询
SQL查询
动态查询
子查询
自动验证
自动完成
参数绑定
虚拟模型
模型分层
视图模型
关联模型
高级模型
Mongo模型

视图

模板定义
模板主题
模板赋值
模板渲染
获取模板地址
获取内容
模板引擎

模板

变量输出
系统变量
使用函数
默认值输出
使用运算符
标签库
模板继承
修改定界符
三元运算
包含文件

内置标签

比较标签
范围判断标签
IF标签
Present标签
Empty标签
Defined标签
Volist标签
Assign标签
Foreach标签
Define标签
For标签
标签嵌套
Switch标签
import标签
使用PHP代码
原样输出
模板注释
模板布局
模板替换

调试

调试模式
异常处理
日志记录
页面Trace
Trace方法
变量调试
性能调试
错误调试
模型调试

缓存

数据缓存
快速缓存
查询缓存
SQL解析缓存
静态缓存

安全

输入过滤
表单合法性检测
表单令牌
防止SQL注入
目录安全文件
保护模板文件
上传安全
防止XSS攻击
其他安全建议

扩展

类库扩展

驱动扩展

缓存驱动
数据库驱动
日志驱动
Session驱动
存储驱动
模板引擎驱动
标签库驱动
行为扩展
标签扩展
Widget扩展
应用模式

部署

PATH_INFO支持
URL重写
模块部署
域名部署
入口绑定
替换入口

专题

SESSION支持
Cookie支持
多语言支持
数据分页
文件上传
验证码
图像处理
RESTFul
RPC
SAE

微信SDK

Wechat
IP获取和定位

附录

常量参考
配置参考
升级指导
鸣谢

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }