标题：thinkphp
详细信息
简介ThinkPHP 是一个免费开源的，快速、简单的面向对象的 轻量级PHP开发框架，遵循Apache2开源协议发布，是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则，在保持出色的性能和至简的代码的同时，也注重易用性。并且拥有众多的原创功能和特性，在社区团队的积极参与下，在易用性、扩展性和性能方面不断优化和改进，众多的典型案例确保可以稳定用于商业以及门户级的开发。[1]
ThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架，诞生于2006年初，原名FCS，2007年元旦正式更名为ThinkPHP，遵循Apache2开源协议发布，从Struts结构移植过来并做了改进和完善，同时也借鉴了国外很多优秀的框架和模式，使用面向对象的开发结构和MVC模式，融合了Struts的思想和TagLib（标签库）、RoR的ORM映射和ActiveRecord模式，封装了CURD和一些常用操作，单一入口模式等，在模版引擎、缓存机制、认证机制和扩展性方面均有独特的表现，也已经越来越多地受到国内PHP开发人员的认可。
  ThinkPHP可以支持WIN/Unix服务器环境，正式版需要PHP5.0以上版本支持，支持Mysql、PgSQL、Sqlite以及PDO等多种数据库，ThinkPHP框架本身没有什么特别模块要求，具体的应用系统运行环境要求视开发所涉及的模块。
使用ThinkPHP，你可以更方便和快捷的开发和部署应用，当然不仅仅是企业级应用，任何PHP应用开发都可以从ThinkPHP的简单、兼容和快速的特性中受益。简洁、快速和实用是ThinkPHP发展秉承的宗旨，为此ThinkPHP会不断吸收和融入更好的技术以保证其新鲜和活力，提供WEB应用开发的最佳实践。
作为一个整体开发解决方案，ThinkPHP能够解决应用开发中的大多数需要，因为其自身包含了底层架构、兼容处理、基类库、数据库访问层、模板引擎、缓存机制、插件机制、角色认证、表单处理等常用的组件，并且对于跨版本、跨平台和跨数据库移植都比较方便。并且每个组件都是精心设计和完善的，应用开发过程仅仅需要关注您的业务逻辑。
ThinkPHP遵循 Apache2 开源许可协议发布，意味着用户可以免费使用ThinkPHP，甚至允许把用户的ThinkPHP应用采用商业闭源发布。
发展历史ThinkPHP发展历程，无数TPer一起见证了ThinkPHP的成长：
2006-01-15 ThinkPHP的雏形版本FCS0.6.0发布
2006-02-12 （元霄节）发布FCS 0.6.1 版本，Google讨论组成立
2006-03-15 FCS 0.7.0版本发布
2006-03-23 第一个QQ群成立
2006-05-07 FCS 0.8版本发布
2006-10-25 FCS 0.9.0版本发布
2006-12-25 SF项目和Google网站ThinkPHP项目申请完成 
2007-01-01 FCS正式更名为ThinkPHP
2007-01-08 ThinkPHP 0.9.5版发布同期官方网站开通
2007-02-21 TOPThink社区暨新版ThinkPHP官方网站开通，并提供社区支持
2007-02-25 发布ThinkPHP 0.9.6版本，完成FCS到ThinkPHP的正式迁移
2007-04-29 ThinkPHP发布0.9.7版本
2007-07-01 ThinkPHP发布0.9.8版本
2007-10-15 ThinkPHP发布1.0.0RC1版本，完成PHP5的重构
2007-12-15 ThinkPHP发布1.0.0正式版本标志着ThinkPHP步入轨道
2008-10-01 ThinkPHP发布1.0.3正式版本
2008-12-25 ThinkPHP发布1.5正式版本并启动商业化支持服务，ThinkPHP进入稳定发展
2009-05-01 ThinkPHP 发布1.6.0RC1版本
2009-10-01 ThinkPHP发布2.0版本完成新的重构和飞跃，这是一次划时代的版本
2012-04-05 ThinkPHP发布3.0版本 庆祝ThinkPHP发布6周年
2012-10-08 ThinkPHP发布3.1版本 
2012-11-11 ThinkPHP3.1.2扩展包
特性简单易用的MVC模式
模型（M）：模型的定义由Model类来完成。Model类位于项目目录下面的LibModel目录。
  THINKPHP初始页面控制器（C）：应用控制器（核心控制器）和Action控制器都承担了控制器的角色，区别在于Action控制器完成业务过程，而应用控制器（App类）负责调度控制。Action控制器位于项目目录下面的LibAction目录。
视图（V）：模板的实现是和框架无关的，做到了100%分离，可以独立预览和制作。模板目录位于项目目录下面的Tpl目录。
独创的核心编译和项目编译机制
ThinkTemplate是一个使用了XML标签库技术的编译型模板引擎，支持两种类型的模板标签，使用了动态编译和缓存技术，而且支持自定义标签库。其特点包括：
1)支持XML标签库和普通标签的混合定义；
2)编译一次，下次直接运行而无需重新编译；
3)模板文件更新后，自动更新模板缓存；
4)自动加载当前操作的模板缓存文件，无需指定模板文件名称；
5)支持编码转换和Content-Type更换；
  THINKPHP目录结构6)模板变量输出前缀支持，避免变量名称冲突；
7)模板常量替换，无需设置模板变量；
8)支持变量组合调节器和格式化功能；
9)支持替换其它模板引擎插件使用；
10)支持获取模板页面内容
内置XML模板引擎，支持标签库
富模型支持
1)聚合模型：
聚合模型是一种虚拟模型，用于把数据表的字段抽象化，更加容易理解和操作。
我们可以把数据表中的某些属性进行数据封装，这样就把枯燥的数据表字段赋予更好的可读性。
2)静态模型：
静态模型可以让模型的数据静态化，而不需要频繁和数据库打交道，可以用于不经常不变的数据表。而且ThinkPHP在ORM层上面模拟实现了数据库的视图功能，这是ThinkPHP独创的一项技术，使得多表的关联查询具有更高的效率和可操作性，而无需定义复杂的关联关系，让关联关系更加浅显易懂。
有些时候，数据表的数据一旦添加后就不再容易变化，我们更希望把这样的模型数据静态化，而不需要再次访问数据库。ThinkPHP支持静态模型的概念，一旦把模型设置为静态，那么会在第一次初始化的时候获取数据表的全部数据，并生成缓存，以后不会再连接数据库。而只需要直接访问模型的dataList数据即可。
3)视图模型
ThinkPHP在ORM模型里面模拟实现了数据库的视图模型，该功能可以用于多表查询。
要定义视图对象，需要设置viewModel为true，然后设置viewFields属性即可。
CURD和操作高度自动化支持
ThinkPHP提供了灵活和方便的数据操作方法，不仅实现了对数据库操作的四大基本操作（CURD）：创建、读取、更新和删除的实现，还内置了很多实用的数据操作方法，提供了ActiveRecords模式的最佳体验。
丰富的查询语言支持
ThinkPHP大多数情况使用的都是对象查询，因为充分利用了ORM查询语言，了解查询条件的定义对使用对象查询非常有帮助，对于复杂的查询，或者从安全方面考虑，可以使用HashMap对象或者索引数组来传递查询条件。
目录结构自动创建THINKPHP目录结构
ThinkPHP具有项目目录自动创建功能，你只需要定义好项目的入口文件，第一次执行入口文件的时候，系统会自动创建项目的相关目录结构，如果是linux环境下面需要给项目入口文件里面指定的路径设置可写权限。
分布式数据库支持
ThinkPHP的模型支持主从式数据库的连接，配置DB_DEPLOY_TYPE为1可以采用分布式数据库支持。
多数据库连接和切换支持
如果需要在特殊的时候连接多个数据库，那么可以尝试使用ThinkPHP的多数据库连接特性：包括相同类型的数据库和不同类型的数据库。（注意：所谓的相同类型数据库的定义是指和项目配置文件或者模型的数据库连接的数据库类型相同。）
ActiveRecords模式和丰富的ROR特性

重要的概念
要掌握ThinkPHP，首先要了解其中的几个重要概念，对于熟悉Java开发的朋友，应该很容易理解下面的一些概念。 
Action对象：和Struts框架的Action类似，Action对象主要提供应用逻辑的控制和处理，属于ThinkPHP的控制层，由核心的App类完成模块和操作的解析后直接转交给相应的Action对象处理。应用类中的所有Action对象都继承系统的Action基类。
Dao对象：是指DataAccessObject（数据访问对象），Dao设计模式把底层的数据访问逻辑和业务逻辑分开，夹在业务层与数据层中间，用于数据库访问和操作。可以针对单表和多表操作。ThinkPHP中的Dao对象属于建立在抽象数据库访问层之上的事务性对象。
VO对象：是指ValueObject（数据对象），更加精确的说是业务对象，因为VO对象是存活在业务层的，供业务逻辑使用的。VO对象和数据表存在一种映射关系，VO对象的每个属性对应数据表（或者视图）的一个字段，你完全可以添加其他非数据表字段的VO对象属性，以用于业务逻辑操作，例如关联字段。VO对象有个特殊的保留属性_info，是一个数组变量，用来保存该VO对象的一些特殊信息。和VO对象对应的概念还有PO（持久数据对象），VO和PO的概念都来自于O/RMapping（ObjectRelationalMapping，对象关系映射），PO只能用在数据层（也就是说PO对象的属性必须和数据表一一对应），VO用在业务逻辑层和表示层（可以有自己的额外属性）。各层操作属于该层自己的数据对象，这样就可以降低各层之间的耦合，便于以后系统的维护和扩展。如果将PO用在各个层中就相当于我们使用全局变量，我们知道在OO设计非常不赞成使用全局变量。
VoList对象：在ThinkPHP框架中，把查询后的数据集（ResultSet）转换成数据列表对象，也就是VOLIST对象，和ResultSet对象不同的是每个记录就相当于一个VO对象。在VOLIST对象中可以方便地遍历和操作VO对象。VO对象和VOLIST对象都属于ThinkPHP框架中的实体对象，是数据操作的基本元素。如果你在开发过程中没有使用Dao模式，而是通过数据库驱动类直接操作数据库，那么返回的是ResultSet对象。ThinkPHP系统提供了从ResultSet对象转换为VOLIST对象的方法。
组件和插件支持
基于角色的权限控制体系
企业级的应用是离不开安全保护的，ThinkPHP以基于Spring的Acegi安全系统作为参考原型，并做了简化，以适合目前的ThinkPHP结构，提供了一个多层的、可定制的安全体系来为应用开发提供安全控制。安全体系中主要有： 安全拦截器、认证管理器、决策访问管理器 、运行身份管理器。
分层架构
ThinkPHP的分层架构采用三层架构模式：
表现层：包含模板视图、用户界面、JS、Flash等通过模板引擎的支持，可以使用标签定义简化表现层的定义工作。
业务层：包含业务接口层、业务逻辑层、实体层、数据访问层Action控制器作为业务接口层，提供系统各种业务操作的入口。因此，不提倡在控制器类中写过多的业务逻辑代码，虽然说很难严格控制。具体的业务逻辑应该封装到数据访问对象（Dao）类中实现，如果觉得过于复杂，还可以把子业务在Helper类中包装后统一调用。业务处理过程一般会构造出业务实体对象（如Vo对象），对业务实体对象的存取通过数据访问层完成。数据访问层把实体对象和数据库数据之间建立映射关系，并且封装了通用的数据操作。
数据层：目前支持的数据库有MySql、MsSql、PgSql、Oracle、Sqlite，最新版本已经提供PDO的支持，数据库的选用和业务逻辑没有关系。
更新记录
ThinkPHP3.1.2发布 2012/11/17[更新][2]
独立分组功能
模板继承
模块和操作映射
AJAX增加jsonp格式支持
分组支持单独配置默认模块和操作
核心编译过程的优化
SAE引擎升级
改进的分页类
修正查询语言的一处安全隐患
ThinkPHP 3.1发布 2012/09/03[更新]
更加安全的防护和过滤体系
MVC多层支持
Action参数绑定支持
模型命名范围支持
查询条件和SQL预处理功能
动态设置自动验证和自动完成支持
更加灵活强大的缓存管理方法
日志记录简化、增加IP支持
致命错误的捕获机制完善
页面Trace机制改进和分类显示支持
超过128项更新
ThinkPHP 3.0.1 开发版2012-04-05
[更新]
Action参数绑定支持
模型类命名范围支持
全局系统变量安全过滤支持
增加IS_GET IS_POST IS_PUT 等请求类型常量
日志记录改进 优化日志大小 增加IP记录
U函数对子域名部署的增强和优化
模型类增加filter连贯操作方法 用于对数据的安全过滤
模型类的data方法支持获取当前数据对象
Action类增加_param方法支持 可以自动根据当前提交类型 获取参数
Action类的_get _post方法支持多函数过滤
改进ajaxReturn方法
改进success和error方法
增加自动验证的规则
分组模式下 模型分组可以自动加载
模型类增加close方法 驱动类支持多数据库连接关闭
模型类增加表单提交字段合法性检测 配置insert_fields 和 update_fields
模型强制进行数据字段类型验证
增加DB_SLAVE_NO配置参数 用于指定读服务器的序号
优化模型的create方法的数据对象生成
自动验证的function和callback规则支持多字段
[3.0版本]2012-3-23[修正]
修正视图模型扩展的checkOrder方法
修正U方法对默认分组的完善
修正Redis缓存类
修正sqlsrv驱动
修正模式扩展中的Model类
修正模型的where方法传人空参数的时候导致delete方法删除全部数据的问题
修正路由定义的大写被强制转换为小写的错误 
修正静态缓存读取行为扩展
修正Pgsql驱动
修正S方法的缓存有效期
修正Mongo驱动类
[删除]
取消path_info标签扩展位置
取消TAG_NESTED_LEVEL配置参数，该参数已经无效
取消CheckTemplate行为扩展 并入核心App类的init方法
[增加]
App类增加action_name 行为标签位置 用于改变操作方法名
增加引擎扩展 SAE纳入第一个引擎扩展
增加ENGINE_PATH常量定义 用于引擎扩展使用
增加PATH_INFO的兼容判断功能 
增加URL_PATHINFO_FETCH配置参数
增加FireShowPageTrace行为扩展 能将Trace信息输出到火狐的firebug
增加Wincache缓存扩展驱动
[完善]
SAE引擎代码优化
优化ThinkPHP入口文件
改进模块名的安全检测 取消异常抛出改成引导到空模块环节
改进Widget类的template属性处理，不区分大小写 方便定义
模型的field方法支持 field(true) 用法 表示获取数据表的全部字段 (而不是*)
改进对mysql驱动的关键字处理方法parseKey
改进MongoDb驱动对读写分离的支持
改进模板引擎的标签别名解析 别名可以无需要定义解析方法
改进Db和sqlite缓存驱动类对有效期参数的判断
规则路由定义支持完整匹配
改进模板检测的自定义模板目录支持
[调整]
系统调试模式配置文件关闭模板缓存
模板字符串替换定义TMPL_PARSE_STRING区分大小写
配置参数只支持一级不区分大小写 二级以下配置参数区分大小写调用
行为日志记录类型改为Log::INFO 类型，方便通过配置文件 单独关闭相关行为日志显示和记录
checkLang行为扩展调整语言包命名规范调整 项目公共语言包 common.php 分组语言包 分组名.php 模块语言包 分组名_模块名.php 或者 模块名.php
[2.1版本]2011-4-30这次的重点更新是在核心应用上的改造和效率方面的提升，主要体现在：
URL路由灵活模式，支持常规路由定义，正则路由匹配
对比2.0版本，新的路由模式更体贴和应用更方便，同时在执行效率上也得到了更简洁而有效的处理。最重要的是定义路由将更简单和直接，并且可选择使用独立文件定义或是直接配置定义。
2.1版本对分组模式完善了细节流程上的解析机制，增加了实用的常量定义和模板替换，同时添加了对二级域名的友好支持，对项目部署提供了更多方便
ThinkPHP内置模板引擎舍弃了原来xml模式的解析，直接改由类属性进行定义标签，既减少了文件加载，提升了解析效率，在自定义标签和标签扩展上，也更加简单和方便了
允许项目指定编译缓存文件定义
系统函数库functions列入核心编译文件，不再默认绑定到核心编译
以上两项更新虽微，但实际上意义非凡，对于多项目多应用同时布署架构时会起到非常重要的作用，核心的自由度更宽更广了。
改进tag函数，插件机制可以直接定义要执行的行为
 项目初始化提供新的可自定义的部署模式
允许自定义项目首次运行时的访问处理方式，系统由原来的简单成功提示，改为探针模式友好提示，对于使用ThinkPHP部署的项目，在初始运行时将方便地提供服务器相关信息，对是否支持ThinkPHP运行环境进行探测并报告和提出建议。
提供AMF模式支持
 提供PhpRPC模式(感谢vanvvdot提供扩展)
 lite模式增强，支持使用内置模板引擎
 数据插入时允许进行更新操作
 提供了更简洁的连贯操作方式的数据库切换
 新增模板常量、变量定义等实用标签
 其它一些应用细节处理可对比svn更新记录
 Images图像类恢复图片水印支持
 Model类恢复批量插入数据的addAll方法
 优化项目核心运行进程细节，去掉不常用功能。
 优化系统进程统计处理，提供G函数可进行记录和统计。
 完善了多语言在各服务器环境下的兼容性统一
 完善了RelationModel方法兼容问题
 完善了序列化字段处理
 完善了数据编辑的时候唯一检测的验证
 增加是否记录异常信息日志开关 LOG_EXCEPTION_RECORD
 去除了原svn上的二级域名支持
 去除了原svn上的前后置判断处理
 去除了个别不通用功能和配置
 去除了URL重定向处理，减少HTTP请求的同时，也避免了因此带来的一些错误。
 对于以上已去除的功能开关不再生效
[1.0.4 版本] 2008-5-16修正关联写入和数据字段过滤的冲突
修正哈希子目录缓存方式
模块配置文件命名改为：模块名+_config.php
修正Compare标签
修正CX标签库的判断标签
修正模板引擎的IF标签的条件BUG
修改多数据库连接和切换机制，取消addConnect方法的eqType参数，避免了因来回切换的时候的错误
修正Db缓存和Sqlite缓存的数据过期判断
增加项目配置检测，如果项目配置文件发生修改，则重新生成编译项目缓存。
增加跳转页面模板和404模板配置配置方式和Action类的display方法templateFile参数一致，默认配置： 'ACTION_JUMP_TMPL'=> 'Public:success', 'ACTION_404_TMPL'=> 'Public:404'
Action类增加404操作方法页面跳转操作和404操作支持模板文件配置
修正html标签库的link和import标签
增加数据查询的IS NULL 和 IS NOT NULL支持
修正连贯操作的一些警告错误
完善join分析 支持left right等方式
修正模板引擎在开启短标签的情况下无法正常输出xml标识的问题
修正ORG.Date.Date类的maxDayOfMonth方法
完善多数据库连接的切换
修改命令行自动创建工具build
修正连贯操作的field方法的判断错误
修正Db类的一处where条件判断的小问题
rand_string加上中文随机字符串生成
修正兼容方法json_encode对布尔值的判断
修正ArrayList类的addall方法
修正max min avg sum等查询方法返回浮点型数据错误的问题
修正数组方式查询的自己使用Like问题
iterate标签增加mod属性，用于计算循环变量的取模替换原来的odd属性
增加Input类，用于输入数据管理
删除已经废弃的目录检查插件
优化模板引擎解析，避免多次实例化模板解析类并简化模板解析类的写法，去掉架构方法定义
修改mobile验证的正则
增加了分页类关于负数的判断
部分CX标签的属性可以支持特殊模板变量
F方法生成的文件会自动加上THINK_PATH判断，避免直接执行 
取消了当指定模块和操作不存在的时候执行默认模块和默认操作，由用户自己定义空模块和空操作来处理。
增加了连贯操作的data方法，用于指定要操作的数据
去掉了已经废弃的三个配置参数：DB_CACHE_ON DB_CACHE_TIME DB_CACHE_MAX
增加表单提交的MAGIC_QUOTES_GPC判断
model类的query和execute方法支持使用__TABLE__字符串系统会自动替换成当前模型对应的表名 
调整了空操作和直接判断模板文件的顺序空操作优先执行
修正Cookie类支持关闭浏览器就失效的情况设置COOKIE_EXPIRE为0或者空字符串或者在使用的时候传递参数0 Cookie::set($name,$value,0);
项目编译缓存文件也加上是否去掉注释的开关
[1.0.3 版本] 2008-3-16增加空模块支持 如果指定的模块不存在会首先定位是否存在Empty模块
增加核心编译文件的去除空白和注释的开关，在入口文件定义 STRIP_RUNTIME_SPACE 常量为false 可以关闭去除空白和注释
Action缓存由原来的userCache成员属性控制改为项目参数 ACTION_CACHE_ON 控制，便于动态控制
增加数据库字段缓存的开关 惯例配置增加DB_FIELDS_CACHE 用以设置数据库字段是否缓存，默认进行缓存
修正xcache和sqlite缓存方式的读写次数记录
使用视图模型的时候，如果主键是id，不需要再定义getPk方法
修正多语言和多模板的cookie问题
入口文件免设置APP_NAME APP_PATH
完善Cookie类
修正模板检查的时候组件化的支持
模型类的查询操作支持连贯方法
去掉了一些废弃的惯例配置参数，包括：DATA_CACHE_ON 和 DATA_CACHE_MAX
惯例配置增加了DATA_CACHE_SUBDIR参数控制文件缓存方式是否自动使用子目录哈希缓存
在项目根目录不存在的情况下自动创建
完善对跨库查询的支持
目录自动创建支持写入安全文件
[ 1.0.2 ] 2008-2-21Model类增加toArray方法
修正因Log类的改动导致Trace错误信息无法正常显示的问题
数据查询返回的数据集由ArrayObject对象改成数组
修正Model类的create方法在定义字段映射的下面的bug
修正虚拟模型下面create方法的bug
Model类的facade方法增加数据表字段的检测
优化Image类的showAdvVerify方法
修正标签库的compare标签
Trace配置文件由原来的_trace.php更名为trace.php
项目调试配置文件由原来的_debug.php更名为debug.php
项目配置文件由原来的_config.php更名为config.php
路由定义文件由原来的_routes.php 更名为 routes.php
静态定义文件由原来的_htmls.php 更名为 htmls.php
Model类的create方法无需type参数，自动判断新增和编辑模型数据
增加第一次运行目录自动生成功能（只需要定义入口文件）
默认项目编译缓存目录为Temp目录
[ 1.0.1 ] 2008-2-2修正Db类在Oracle下面的parseLimit方法判断
优化数据库驱动类的查询结果获取
Model 类增加字段的表达式插入和更新支持
完善了Db类的条件查询字段中带有空格的处理
Model类增加了delConnect方法用于删除动态增加的数据库连接
增强了分布式数据库的支持 可以设置是否需要读写分离
Model类增加智能切换功能 switchConnect方法可以自动识别是否是相同的数据库连接类型
增加了组件模块的URL分割定义配置 COMPONENT_DEPR 包括对操作链的设置采用相同的参数定义
修正Model类的count等统计方法会自动缓存的问题 DB类默认关闭查询缓存
修正RBAC组件的权限判断
修正组件模块方式下面的模板文件../Public的替换
修正Html标签库的list标签的actionlist属性的支持
修正PDO类在某些数据库下面的getAll方法的BUG
增加核心缓存文件的开关功能 在入口文件里面设置 CACHE_RUNTIME 为 false
修正了使用组件模块的时候模板文件中__URL__的解析问题
修正模板和语言的切换cookie
Model类增加addConnect和switchConnect方法 用于支持多数据库的连接
修正了语言包的缓存导致切换语言无效的问题
Db类增加多数据库连接的内置支持
修正Model类在某些数据库下面where条件表达式不支持where 1 的情况
Db类增加getLastSql方法用于获取最后一次查询的sql语句
完善Log类的操作以及优化错误日志的写入
修正model的数据库连接配置读取
在ajax返回之前保存日志记录
完善compare标签
改进Vendor函数的baseUrl参数定义
改进项目语言包的定义 不同语言分成不同子目录
简化了query方法的数据库缓存
增加clearCache方法，用于清空项目相关缓存目录
增加firebird数据库驱动支持
修正pgsql驱动
修正~app.php 文件的编译缓存路径的问题
增加编译缓存路径的设置 RUNTIME_PATH
[ 1.0.0 ] 2007-12-25优化了执行效率和内存开销
Import方法增加同名检测和类检测
完善PHP 5.2.0以下版本的支持
去掉了核心对Config、Language、Cookie和Session类库的依赖
去掉了Action类内置的默认操作
改进了MySqli的驱动类库
修正了主键不是自动增长的时候Model的add方法返回错误
修正了mysqli的escape_string方法
修正了PDO的连接params参数问题
修正了Model的findAll的关联查询问题
修正了Model类的getModelName方法问题
修正了RBAC的模块大小写设置
去掉volist resultset标签，均作为iterate标签的别名
增加了项目编译机制和核心类库编译机制
标签库定义增加标签的别名定义
XML模版结束标签增加对空格的支持
增加compare标签和eq neq gt egt lt elt heq 和nheq标签别名
增加了多模版和多语言的开关
RBAC认证增加了操作的认证设置，之前只支持模块的认证设置
在线手册目录
1简介ThinkPHP是一个免费开源的，快速、简单的面向对象的轻量级PHP开发框架,引入了全新的CBD（核心+行为+驱动）架构模式，同时支持SAE、REST和Mongo
2入门基础2.1基础概念
2.2获取ThinkPHP
2.3关于版本
2.4环境要求
2.5许可协议
3架构设计3.1系统特性
3.2目录结构
3.3MVC分层
3.4执行流程
3.5命名规范
3.6入口文件
3.7项目编译
3.8URL访问
3.9控制器
3.10模型
3.11数据库抽象层
3.12视图
3.13模板引擎
3.14函数库
3.15类库
3.16扩展
4构建应用4.1开发流程
4.2入口文件
4.3自动生成
4.4项目配置
4.5业务逻辑
4.6模板定义
4.7运行应用
5开发指南5.1配置
5.2控制器
5.3模型
5.4视图
5.5错误和日志
5.6调试
5.7缓存
5.8安全
5.9部署
5.10杂项
6扩展指南6.1类库扩展
6.2应用扩展
6.3控制器扩展
6.4模型扩展
6.5驱动扩展
6.6Widget扩展
6.7行为扩展
6.8标签库扩展
6.9模板引擎扩展
6.10模式扩展
7模板指南7.1变量输出
7.2使用函数
7.3系统变量
7.4快捷输出
7.5默认值输出
7.6包含文件
7.7导入文件
7.8Volist标签
7.9Foreach标签
7.10Switch标签
7.11比较标签
7.12Range标签
7.13Present标签
7.14Empty标签
7.15Defined标签
7.16IF标签
7.17标签嵌套
7.18使用PHP代码
7.19原样输出
7.20模板注释
7.21引入标签库
7.22修改定界符
8附录8.1常量参考
8.2配置参考
8.3函数参考
8.4类库参考
8.5关于升级
8.6代码重构
8.7开源应用
8.8典型案例
8.9大事记
8.10鸣谢
所获荣誉
2012年度最受欢迎中国开源软件第二名[3]