thinkphp框架是一款运用普遍的中国web框架。thinkphp框架兼容而且重大的轻量级国产PHP开拓框架,反对于windows/Unix/Liunx等效率器情景,正式版需要PHP5.0以上版本反对于,反对于MySql、PgSQL、Sqlite以及PDO等多种数据库,ThinkPHP框架自己不甚么特意模块要求,详细的运用零星运行情景要求视开拓所波及的模块。
thinkphp框架特援用见:
重大易用
模子(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实现为了ActiveRecords方式的ORM模子,接管了非尺度的ORM模子:表映射到类,记实(集)映射到工具,字段属性映射到工具的伪造属性。最大的特色便是运用利便,从而抵达灵便开拓的目的。
锐敏重大的名目配置装备部署
ThinkPHP提供了锐敏的配置装备部署功能,接管最有功能的PHP返回数组方式界说,反对于老例配置装备部署、名目配置装备部署、调试配置装备部署以及模块配置装备部署,而且会自动天生配置装备部署缓存文件,无需一再剖析的开销。对于有些重大的运用,你无需配置装备部署任何配置装备部署文件,而对于重大的要求,你还可能削减模块配置装备部署文件,此外ThinkPHP的动态配置装备部署使患上你在开拓历程中可能锐敏的调解配置装备部署参数。
ThinkPHP在名目配置装备部署下面缔造了自己特有的分层配置装备部署方式,其配置装备部署条理体如今:老例配置装备部署-->名目配置装备部署-->模块配置装备部署-->操作(动态)配置装备部署,优先挨次从右到左(在不失效的条件下)。
模子自动验证以及处置
零星内置了数据工具的自动验证功能,而大少数情景下面,数据工具是由表单提交的$_POST数据建树。需要运用零星的自动验证功能,惟独要在Model类概况界说$_validate属性,是由多个验证因子组成的数组,反对于的验证因子格式:验证字段,验证纪律,过错揭示,验证条件,附加纪律,验证光阴。
动态页面生成以及多元化缓存机制
ThinkPHP内置了动态缓存的功能,而且反对于动态缓存的纪律界说。要运用动态缓存功能,需要开启HTML_CACHE_ON参数,而且在名目配置装备部署目录下面削减动态缓存纪律文件htmls.php。
丰硕的数据库及PDO反对于
SEO以及URL路由反对于
AJAX反对于
易扩展的零星基类库
零星基类库
ThinkPHP框架经由基类库的意见把所有零星类库都集成在一起,搜罗ThinkPHP的中间类库。
基类库分成Think中间类库、ORG扩展类库,在这主要介绍的是中间基类库,中间基类库的熏染是实现框架的通用性开拓而必需的根基类以及罕用工具类等,搜罗有:
Think.Core 中间类库包
Think.Db 数据库类库包
Think.Util 零星工具类库包
Think.Template 内置模板引擎类库包
Think.Exception 颇为处置类库包函数库
ThinkPHP内置了一个零星公共函数库,提供了一些零星需要的函数,零星函数库位于ThinkPHP的Co妹妹on目录下面,称谓为functions.php。
每一个名目可能界说自己的函数库,位于名目的Co妹妹on目录下面的co妹妹on.php文件。
假如名目在Co妹妹on目录下面有界说自己的co妹妹on.php文件,框架会在初始化的时候自动导入,而无需自己导入。
立室导入
Import措施是ThinkPHP内建的类库以及文件导入措施,提供了利便以及锐敏的相似于命名空间的文件导入机制。
自动编码转换
ThinkPHP框架的文件全副接管UTF-8编码格式,UTF-8的反对于以及自动输入编码转换的功能让页面展现愈加锐敏。您可能配置装备部署输入的页面编码格式,如gb2312等(默认接管UTF-8输入)。零星凭证配置装备部署文件中配置的编码格式自动对于页面妨碍编码转换,反对于iconv以及mb_string两种方式,为了后退功能,假如零星的模板编码配置以及输入编码配置项相同,则不会妨碍编码转换。ThinkPHP可能配置模板编码、输入编码以及数据库编码,并自动实现转换使命,让你的运用再也不受编码的苦恼。
thinkphp框架版本降级留意事变:
3.2以上版本对于PHP的版本要求为PHP5.3+ (不搜罗PHP5.3dev以及PHP6) 内行建议先把握PHP5.3的命名空间意见先
从3.2.2版本降级到3.2.3版本,需要留意:
假如运用配置数据库规范参数DB_TYPE为pdo的话,需要改为实际的数据库规范好比mysql(而且再也不分说mysql以及mysqli),DB_DSN参数无需配置。
假如从更旧的3.1版本降级建议参考民间的降级教育先降级到3.2版本。
而且APP_USE_NAMESPACE以及CONTROLLER_LEVEL参数可能会不才一版本作废,再也不推选运用。
thinkphp框架 v3.2 更新日志:
[ 数据库方面 ]
数据库驱动残缺用PDO重写;
反对于通用insertAll措施;
改善参数绑定机制;
主从扩散式数据库衔接改善;
对于Mongo的反对于愈加美满;
[ 模子方面 ]
模子类的诸多增强以及改善;
削减聚合模子扩展;
反对于复合主键;
多表操作的反对于美满;
模子的CURD操作反对于仅取患上SQL语句而不实施;
削减using/index/fetchSql/strict/token毗邻操作措施;
模子类的setInc以及setDec措施反对于延迟写入;
[ 清静方面 ]
I函数削减变量修饰符以及正则检测反对于;
反对于全局变量过滤以及Action参数绑定的变量过滤;
更正可能的SQL注入倾向;
[ 此外方面 ]
反对于全局路由界说;
削减插件操作器反对于;
削减对于全局以及模块的模板道路的锐敏配置;
日志目录分模块寄存;
削减memcache Session驱动;
改善session函数的数组操作;
更正一系列存在的下场;