thinkphp3.0 chm是php6吗

ThinkPHP教程 列表
相关参考课程
ThinkPHP import 类库导入
ThinkPHP import 方法
ThinkPHP 模拟了 Java 的类库导入机制,统一采用 import 方法进行类文件的加载。import 方法是 ThinkPHP 内建的类库和文件导入方法,提供了方便和灵活的文件导入机制,完全可以替代 PHP 的 require 和 include 方法。
但对于第三方类库,我们建议使用 来导入。
import 语法:
boolen import(class, baseUrl, ext)
参数说明:
必须,表示要导入的类库,采用命名空间的方式。
可选,表示导入的基础路径,省略的话系统采用默认的规则,具体见下文。
可选,表示导入的类库后缀,默认是 .class.php 。
import 方法是 ThinkPHP 内置的一个普通函数,可以在模块操作内自由使用,可以参考
和 require 的用法。
import 类库导入例子
导入 ThinkPHP 基类库文件
import 方法导入 文件,约定导入 Think、ORG、Com 包以 ThinkPHP 系统基类库为相对起始目录:
// 导入 ThinkPHP系统目录/Lib/Think/Util/Session.class.php 文件
import(&Think.Util.Session&);
// 导入 ThinkPHP系统目录/Lib/ORG/Util/Page.class.php 文件
import(&ORG.Util.Page&);
导入项目应用类库文件
// 导入 MyApp项目 Lib/Action/UserAction.class.php 文件
import(&MyApp.Action.UserAction&);
// 导入 MyApp项目 Lib/ORG/Page.class.php 文件
import(&MyApp.ORG.Page&);
// 导入 MyApp项目 Lib/ORG/My/Image.class.php 文件
import(&MyApp.ORG.My.Image&);
如果是当前项目,可以简化为:
import(&@.Action.UserAction&);
import(&@.ORG.Page&);
import(&@.ORG.My.Image&);
这种写法有利于项目的移植。如果是导入其他项目的类库,必须指定项目名称:
import(&OtherApp.Action.UserAction&);
注意:使用这种方式导入其他项目的类库时,必须保证两个项目的目录是平级的,否则需要指定 baseUrl 参数。
指定 baseUrl 参数
对于以上导入系统类库和项目类库的情况,import 方法会自动识别类库导入的路径,其他情况就需要指定 baseUrl 参数。如导入当前文件所在目录下的 My.class.php 文件:
import(&My&,dirname(__FILE__));
指定 ext 参数
ext 参数表示导入的类库后缀,默认是 .class.php。如果导入的文件不是 *.class.php 格式的,可以指定 ext 参数。如导入当前文件所在目录下的 My.php 文件:
import(&My&,dirname(__FILE__),&.php&);
. 符号文件导入
在 import 方法中,. 符号是用于表示目录层次的,如果需要导入的文件名包含有 . 符号,如 .class.php ,那么需要以 # 号来代替 . 号:
import(&@.Action.User#Info&);
如果在别名定义文件定义了别名:
'AdvModel' =& THINK_PATH.'/Lib/Think/Core/Model/AdvModel.class.php',
可以使用 import 方法以别名的方式导入对应的类库文件:
import('AdvModel');
系统默认的别名定义文件位于 ThinkPHP 系统目录下的 Commonalias.php,也可以定义项目自己的别名文件。
同名文件导入冲突
import 方法具有缓存和检测机制,相同的文件不会重复导入,如果发现导入了不同的位置下面的同名类库文件,系统会提示冲突,例如:
import(&Think.Util.Array&);
import(&App.Util.Array&);
上面的情况导入会产生引入两个同名的 Array.class.php 类,即使实际上的类名可能不存在冲突,但是按照 ,类名和文件名是一致的,所以系统会抛出类名冲突的异常,并终止执行。
什么时候需要使用 import 方法?
import 方法用于导入当前需要而 ThinkPHP 又不能自动载入的文件,如系统基类 ORG 与 Com 目录下的扩展基类,自己的类库等。至于第三方类库,也可以使用 import 方法导入,但建议使用 vendor 方法导入。
import 方法与 import 标签的区别
import 方法用于模块操作中导入不能自动加载的文件类库,用于在模板中导入外部 Js 和 CSS 文件。
import 方法与 PHP6 import
在未来的 PHP6 版本中开始支持命名空间和 import 关键字,因此可以预见,ThinkPHP 可能会对 import 方法加以改写。
本章节内容共分 4 部分:
ThinkPHP import 类库导入
<(我爱开发网) — 提供最好的 、、、 及赞助商链接:安装配置 - [ ThinkPHP 5 简明开发手册 ] - 看云
严格来说,ThinkPHP无需安装过程,这里所说的安装其实就是把ThinkPHP框架放入WEB运行环境(前提是你的WEB运行环境已经OK),可以通过两种方式获取和安装ThinkPHP。
一、下载ThinkPHP安装
获取ThinkPHP的方式很多,官方网站()是最好的下载和文档获取来源。
官网提供了稳定版本的下载:
由于ThinkPHP5.0还在测试阶段,所以需要通过Git服务器下载,Git服务地址:
二、使用Composer安装
ThinkPHP支持使用Composer安装,如果还没有安装 Composer,你可以按
中的方法安装。在 Linux 和 Mac OS X 中可以运行如下命令:
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
在 Windows 中,你需要下载并运行 。
如果遇到任何问题或者想更深入地学习 Composer,请参考 ,。
如果你已经安装有 Composer 请确保使用的是最新版本,你可以用 composer self-update 命令更新 Composer 为最新版本。
然后在命令行下面,切换到你的web根目录下面并执行下面的命令:
composer create-project topthink/think tp5 dev-master --prefer-dist
由于目前尚未正式发布,所以先用dev-master分支。
如果出现错误提示,请根据提示操作或者参考。
无论你采用什么方式获取的ThinkPHP框架,现在只需要做最后一步来验证是否正常运行。
在浏览器中输入地址:
http://localhost/tp5/public/
如果浏览器输出如图所示:
恭喜你,现在已经完成ThinkPHP的安装!
如果你无法正常运行并显示ThinkPHP的欢迎页面,那么请参考下面的列表检查下你的服务器环境:
PHP5.4以上版本(注意:PHP5.4dev版本和PHP6均不支持)
WEB服务器是否正常启动
页面正在加载中Think\Think::start();
语法求解释 - ThinkPHP框架
文件路径: ThinkPHP/ThinkPHP.php
版本: 3.2.1
// 应用初始化
Think\Think::start();
.............. 94行
这一句中的斜杠是怎么回事,可以有这种写法的吗?
现在我运行的时候这一句出错了,是不是有什么需要设置的?
Warning: Unexpected character in input: &#039;\&#039; (ASCII=92) state=0 in C:\AppServ\www\myobject\ThinkPHP\ThinkPHP.php on line 94
Parse error: syntax error, unexpected T_STRING in C:\AppServ\www\myobject\ThinkPHP\ThinkPHP.php on line 94
ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。ThinkPHP - 搜狗百科
ThinkPHP是一个开源的,是为了简化和敏捷WEB应用开发而诞生的。最早诞生于2006年初,原名FCS,2007年元旦正式更名为ThinkPHP,并且遵循Apache2发布。早期的思想架构来源于Struts,后来经过不断改进和完善,同时也借鉴了国外很多优秀的框架和模式,使用面向对象的开发结构和,融合了Struts的Action、Dao思想、JSP的TagLib(标签库)、RoR的ORM映射和ActiveRecord模式,封装了CURD和一些常用操作,单一入口模式等,在模版引擎、缓存机制、认证机制和扩展性方面均有独特的表现。
ThinkPHP是一个免费开源的,快速、简单的面向对象的,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,众多的典型案例确保可以稳定用于商业以及门户级的开发。ThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架,诞生于2006年初,原名FCS,2007年元旦正式更名为ThinkPHP,遵循Apache2发布,从Struts结构移植过来并做了改进和完善,同时也借鉴了国外很多优秀的框架和模式,使用的开发结构和MVC模式,融合了Struts的思想和TagLib()、RoR的ORM和ActiveRecord模式,封装了CURD和一些常用操作,单一入口模式等,在模版引擎、缓存机制、认证机制和扩展性方面均有独特的表现,也已经越来越多地受到国内PHP开发人员的认可。Think可以支持WIN/服务器环境,正式版需要5.0以上版本支持,支持、、以及PDO等多种数据库,Think框架本身没有什么特别模块要求,具体的应用系统运行环境要求视开发所涉及的模块。使用ThinkPHP,你可以更方便和快捷的开发和部署应用,当然不仅仅是企业级应用,任何PHP应用开发都可以从ThinkPHP的简单、兼容和快速的特性中受益。简洁、快速和实用是ThinkPHP发展秉承的宗旨,为此ThinkPHP会不断吸收和融入更好的技术以保证其新鲜和活力,提供WEB应用开发的最佳实践。作为一个整体开发解决方案,能够解决应用开发中的大多数需要,因为其自身包含了底层架构、兼容处理、库、访问层、、缓存机制、机制、角色认证、表单处理等常用的组件,并且对于跨版本、跨平台和跨移植都比较方便。并且每个组件都是精心设计和完善的,应用开发过程仅仅需要关注您的业务逻辑。ThinkPHP遵循Apache2发布,意味着用户可以免费使用ThinkPHP,甚至允许把用户的ThinkPHP应用采用商业发布。
ThinkPHP发展历程,无数TPer一起见证了ThinkPHP的成长:日,ThinkPHP的雏形版本FCS0.6.0发布;日,(元霄节)发布FCS0.6.1版本,Google成立;日,FCS0.7.0版本发布;日,第一个QQ群成立;日,FCS0.8版本发布;日,FCS0.9.0版本发布;日,SF项目和Google网站ThinkPHP项目申请完成;日,FCS正式更名为ThinkPHP;日,ThinkPHP0.9.5版发布同期官方网站开通;日,TOPThink社区暨新版ThinkPHP官方网站开通,并提供社区支持;日,发布ThinkPHP0.9.6版本,完成FCS到ThinkPHP的正式迁移;日,ThinkPHP发布0.9.7版本;日,ThinkPHP发布0.9.8版本;日,ThinkPHP发布1.0.0RC1版本,完成的重构;日,ThinkPHP发布1.0.0正式版本标志着ThinkPHP步入轨道;日,ThinkPHP发布1.0.3正式版本;日,ThinkPHP发布1.5正式版本并启动商业化支持服务,ThinkPHP进入稳定发展;日,ThinkPHP发布1.6.0RC1版本;日,ThinkPHP发布2.0版本完成新的重构和飞跃,这是一次划时代的版本;日,ThinkPHP发布3.0版本庆祝ThinkPHP发布6周年;日,ThinkPHP发布3.1版本;日,ThinkPHP3.1.2扩展包日,ThinkPHP发布3.1.3完整版;日,ThinkPHP发布3.2正式版。
简单易用的MVC模式
(M):的定义由Model类来完成。Model类位于项目目录下面的LibModel目录。(C):应用(核心)和Action都承担了的角色,区别在于Action完成,而应用(App类)负责调度控制。Action位于项目目录下面的LibAction目录。(V):模板的实现是和框架无关的,做到了100%分离,可以独立预览和制作。模板目录位于项目目录下面的Tpl目录。
独创的核心编译和项目编译机制
是一个使用了XML技术的编译型,支持两种类型的模板标签,使用了和缓存技术,而且支持自定义。其特点包括:1)支持XML和普通标签的混合定义;2)编译一次,下次直接运行而无需重新编译;3)模板文件更新后,自动更新模板缓存;4)自动加载当前操作的模板缓存文件,无需指定模板文件名称;5)支持转换和Content-Type更换;6)模板输出前缀支持,避免名称冲突;7)模板常量替换,无需设置模板;8)支持组合调节器和格式化功能;9)支持替换其它使用;10)支持获取模板页面内容。内置模板引擎,支持标签库富模型支持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。丰富的数据库及支持和路由支持支持易扩展的系统系统库ThinkPHP框架通过库的概念把所有系统类库都集成在一起,包括ThinkPHP的核心类库。目前的库分成Think核心类库、ORG扩展类库,在这主要介绍的是核心库,核心库的作用是完成框架的通用性开发而必须的基础类和常用工具类等,包含有:Think.Core核心类库包Think.Db数据库类库包Think.Util类库包Think.Template内置模板引擎类库包Think.Exception类库包ThinkPHP内置了一个系统公共函数库,提供了一些系统需要的函数,系统函数库位于ThinkPHP的Common目录下面,名称为functions.php。每个项目可以定义自己的函数库,位于项目的Common目录下面的common.php文件。如果项目在Common目录下面有定义自己的common.php文件,框架会在初始化的时候自动导入,而无需自己导入。匹配导入Import方法是ThinkPHP内建的类库和文件导入方法,提供了方便和灵活的类似于的文件导入机制。自动转换ThinkPHP的文件全部采用UTF-8格式,UTF-8的支持和自动输出转换的功能让页面表现更加灵活。您可以配置输出的页面格式,如等(默认采用UTF-8输出)。系统根据配置文件中设置的格式自动对页面进行转换,支持和mb_string两种方式,为了提高效率,如果系统的模板设置和输出设置项相同,则不会进行转换。ThinkPHP可以设置模板、输出和数据库,并自动完成转换工作,让你的应用不再受的苦恼。
ThinkPHP的分层架构采用模式:
包含模板、用户界面、JS、Flash等通过的支持,可以使用标签定义简化表现层的定义工作。
包含业务接口层、、实体层、Action作为业务接口层,提供系统各种业务操作的入口。因此,不提倡在类中写过多的业务逻辑代码,虽然说很难严格控制。具体的业务逻辑应该封装到(Dao)类中实现,如果觉得过于复杂,还可以把子业务在Helper类中包装后统一调用。业务处理过程一般会构造出对象(如Vo对象),对对象的存取通过完成。把实体对象和之间建立关系,并且封装了通用的。
目前支持的数据库有MySql、MsSql、PgSql、Oracle、Sqlite,最新版本已经提供PDO的支持,数据库的选用和业务逻辑没有关系。
要掌握ThinkPHP,首先要了解其中的几个重要概念,对于熟悉Java开发的朋友,应该很容易理解下面的一些概念。
Action对象
和Struts框架的Action类似,Action对象主要提供的控制和处理,属于ThinkPHP的控制层,由核心的App类完成模块和操作的解析后直接转交给相应的Action对象处理。应用类中的所有Action对象都继承系统的Action。
是指DataAccessObject(),Dao把底层的数据访问逻辑和业务逻辑分开,夹在业务层与数据层中间,用于数据库访问和操作。可以针对单表和多表操作。ThinkPHP中的Dao对象属于建立在抽象数据库访问层之上的事务性对象。
是指ValueObject(),更加精确的说是,因为VO对象是存活在业务层的,供业务逻辑使用的。VO对象和数据表存在一种关系,VO对象的每个属性对应数据表(或者)的一个字段,你完全可以添加其他非数据表字段的VO对象属性,以用于业务逻辑操作,例如关联字段。VO对象有个特殊的保留属性_,是一个,用来保存该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以基于的作为参考原型,并做了简化,以适合目前的ThinkPHP结构,提供了一个多层的、可定制的安全体系来为应用开发提供安全控制。安全体系中主要有:安全、认证管理器、决策访问管理器、运行身份管理器。
TinkPHP 3.2.2发布
ThinkPHP3.2.2版本在修正一些BUG后,重写了模块的自动生成,并支持控制器和模型的批量生成,增加了多格式支持,以及一些小的细节改进,该版本属于小版本更新。1、应用支持包括PHP/JSON/INI/XML/YAML以及自定义格式的配置文件;2、支持模块的自动生成和控制器/模型的批量生成;3、增加插件控制器的访问支持;4、cookie函数增加httponly参数支持;5、改进模型类的安全处理;6、修正了3.2.1发布以来社区反馈的一些BUG(详见更新日志);
TinkPHP3.2.1发布
相对于3.2.0版本,主要更新如下:性能较比3.2.0版本提升30%;应用模块中的类库可以配置不使用;支持运行时Lite文件生成,用于替换应用入口文件;改进路由定义的支持;增加API应用模式,更加高效;增加REST、RPC、HPROSE和YAR控制器扩展支持;增加REPL行为扩展,增强框架开发的调试手段;重写查询缓存功能;语言定义支持变量传入;C函数获取配置参数支持默认值;支持操作方法绑定到类;改进和修正Image、Verify和Upload类;修正了3.2.0发布以来社区反馈的一些BUG;
TinkPHP3.2发布
这次版本的关键词是模块化、驱动化和。模块化:3.2版本的架构专门为做了优化和调整,从而更适合企业级应用,当然这很大一部分得益于对命名空间的支持以及自动加载机制。同时,你会看到一个小的细节,ThinkPHP3.2版本自带了一个应用入口文件和应用目录。驱动化:3.2版本在设计类库的时候尽量采用驱动式设计,对于同一功能在不同环境和类型的操作只需要配置驱动即可轻松移植,不需要改变现有代码,同时也让你的应用能够适用于更多更复杂的运行环境。云平台:3.2版本在底层核心就包含了对各种云平台的支持,通过定制不同的应用(场景)模式以及对应的驱动就可以轻松支持云平台的部署开发,你可以实现在本地开发,然后直接无缝部署到云平台,目前已经支持的包括SAE和BAE3。功能:3.2版本在此前的3.1.3版本之上,引入了命名空间,强化了驱动化和行为,增强了模块化的概念和对云平台的支持,并改进了诸多的细节。主要改进包括:模块化架构的全新设计全新命名空间和自动导入机制改进的路由功能主题的动态切换支持更强大的Action参数绑定模型的参数绑定支持改进的域名部署支持全新的应用模式全新重写的工具类(包括图像、和上传等)提供更好的云平台支持修正之前发现的众多BUG注意:3.2以上版本对PHP的版本要求为PHP5.3+ (不包含PHP5.3dev和PHP6)
TinkPHP3.1.3发布
更新该版本针对3.1.2进行了一些改进和完善,主要包括:改进,支持致命错误捕获;针对PDO驱动和Sqlsrv驱动的完善,支持参数绑定;增加变量安全获取和过滤的快捷方法I;分组支持部署到完整域名或IP;A和D方法支持跨分组调用;改进模版引擎的定界符对的支持;修正JS代码可能对模版标签的混淆;模型的方法支持多次调用;默认关闭页面压缩输出;异常日志的纪录;Action类的assign方法支持连贯操作;数据库错误信息包含;修正上一版本的一些BUG;
TinkPHP3.1.2发布
[更新]独立分组功能模板继承模块和操作映射AJAX增加格式支持分组支持单独配置默认模块和操作核心编译过程的优化SAE引擎升级改进的分页类修正查询语言的一处安全隐患
ThinkPHP 3.1发布
[更新]更加安全的防护和过滤体系MVC多层支持Action参数绑定支持模型命名范围支持查询条件和SQL预处理功能动态设置自动验证和自动完成支持更加灵活强大的缓存管理方法日志记录简化、增加IP支持致命错误的捕获机制完善页面Trace机制改进和分类显示支持超过128项更新
ThinkPHP 3.0.1 开发版
[更新]Action参数绑定支持类命名范围支持全局安全过滤支持增加IS_GETIS_POSTIS_PUT等请求类型常量日志记录改进优化日志大小增加IP记录U函数对子域名部署的增强和优化类增加filter连贯操作方法用于对数据的安全过滤类的方法支持获取当前Action类增加_param方法支持可以自动根据当前提交类型获取参数Action类的_get_post方法支持多函数过滤改进Return方法改进success和error方法增加自动验证的规则分组模式下分组可以自动加载类增加方法驱动类支持多数据库连接关闭类增加表单提交字段合法性检测配置insert_fields和update_fields强制进行数据字段类型验证增加DB_SLAVE_NO配置参数用于指定读服务器的序号优化的create方法的数据对象生成自动验证的function和callback规则支持多字段
[修正]修正扩展的checkOrder方法修正U方法对默认分组的完善修正缓存类修正sqlsrv驱动修正模式扩展中的Model类修正的方法传人空参数的时候导致delete方法删除全部数据的问题修正路由定义的大写被强制转换为小写的错误修正静态缓存读取行为扩展修正Pgsql驱动修正S方法的缓存有效期修正Mongo驱动类[删除]取消path_info标签扩展位置取消TAG_NESTED_LEVEL配置参数,该参数已经无效取消CheckTemplate行为扩展并入核心App类的方法[增加]App类增加action_name行为标签位置用于改变操作方法名增加引擎扩展SAE纳入第一个引擎扩展增加ENGINE_PATH常量定义用于引擎扩展使用增加PATH_INFO的兼容判断功能增加URL_PATHINFO_FETCH配置参数增加FireShowPageTrace行为扩展能将Trace信息输出到的firebug增加Wincache缓存扩展驱动[完善]SAE引擎优化ThinkPHP入口文件改进模块名的安全检测取消异常抛出改成引导到空模块环节改进Widget类的template属性处理,不区分大小写方便定义的方法支持field(true)用法表示获取数据表的全部字段(而不是*)改进对驱动的关键字处理方法parseKey改进MongoDb驱动对的支持改进的标签别名解析别名可以无需要定义解析方法改进Db和缓存驱动类对有效期参数的判断规则路由定义支持完整匹配改进模板检测的自定义模板目录支持[调整]系统调试模式关闭模板缓存模板字符串替换定义TMPL_PARSE_STRING区分大小写配置参数只支持一级不区分大小写二级以下配置参数区分大小写调用行为日志记录类型改为Log::INFO类型,方便通过配置文件单独关闭相关行为日志显示和记录checkLang行为扩展调整语言包命名规范调整项目公共语言包common.分组语言名.php包分组名_模块名.php或者模块名.php
这次的重点更新是在核心应用上的改造和效率方面的提升,主要体现在:URL灵活模式,支持常规定义,正则匹配对比2.0版本,新的更体贴和应用更方便,同时在执行效率上也得到了更简洁而有效的处理。最重要的是定义路由将更简单和直接,并且可选择使用独立文件定义或是直接配置定义。2.1版本对分组模式完善了细节流程上的解析机制,增加了实用的常量定义和模板替换,同时添加了对的友好支持,对项目部署提供了更多方便ThinkPHP内置舍弃了原来模式的解析,直接改由进行定义标签,既减少了文件加载,提升了解析效率,在和标签扩展上,也更加简单和方便了允许项目指定编译缓存文件定义系统functions列入核心编译文件,不再默认绑定到核心编译以上两项更新虽微,但实际上意义非凡,对于多项目多应用同时架构时会起到非常重要的作用,核心的自由度更宽更广了。改进函数,插件机制可以直接定义要执行的行为项目初始化提供新的可自定义的部署模式允许自定义项目首次运行时的访问处理方式,系统由原来的简单成功提示,改为探针模式友好提示,对于使用ThinkPHP部署的项目,在初始运行时将方便地提供服务器相关信息,对是否支持ThinkPHP运行环境进行探测并报告和提出建议。提供AMF模式支持提供PhpRPC模式(感谢vanvvdot提供扩展)lite模式增强,支持使用内置数据插入时允许进行更新操作提供了更简洁的连贯操作方式的数据库切换新增模板、定义等实用标签其它一些应用细节处理可对比svn更新记录Images图像类恢复图片水印支持Model类恢复批量插入数据的addAll方法优化项目核心运行进程细节,去掉不常用功能。进程统计处理,提供G函数可进行记录和统计。完善了多语言在各服务器环境下的兼容性统一完善了RelationModel方法兼容问题完善了字段处理完善了的时候唯一检测的验证增加是否记录异常信息日志开关LOG_EXCEPTION_RECORD去除了原svn上的二级域名支持去除了原svn上的前后置判断处理去除了个别不通用功能和配置去除了处理,减少的同时,也避免了因此带来的一些错误。对于以上已去除的功能开关不再生效
[1.0.4 版本]
修正关联写入和数据字段过滤的冲突修正哈希子目录缓存方式模块配置文件命名改为:模块名+_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操作支持模板文件配置修正库的和import标签增加数据查询的ISNULL和ISNOTNULL支持修正连贯操作的一些警告错误完善分析支持leftright等方式修正模板引擎在开启短标签的情况下无法正常输出标识的问题修正ORG.Date.Date类的maxDayOfMonth方法完善多数据库连接的切换修改命令行自动创建工具修正连贯操作的field方法的判断错误修正Db类的一处where条件判断的小问题rand_string加上中文随机字符串生成修正兼容方法对的判断修正ArrayList类的addall方法修正maxminavgsum等查询方法返回错误的问题修正数组方式查询的自己使用Like问题iterate标签增加mod属性,用于计算循环变量的取模替换原来的odd属性增加Input类,用于输入数据管理删除已经废弃的目录检查插件优化解析,避免多次模板解析类并简化模板解析类的写法,去掉架构方法定义修改mobile验证的正则增加了类关于负数的判断部分CX标签的属性可以支持特殊模板变量F方法生成的文件会自动加上THINK_PATH判断,避免直接执行取消了当指定模块和操作不存在的时候执行默认模块和默认操作,由用户自己定义空模块和空操作来处理。增加了连贯操作的方法,用于指定要操作的数据去掉了已经废弃的三个配置参数:DB_CACHE_ONDB_CACHE_TIMEDB_CACHE_MAX增加表单提交的MAGIC_QUOTES_GPC判断model类的和execute方法支持使用__TABLE__字符串系统会自动替换成当前对应的表名调整了空操作和直接判断模板文件的顺序空操作优先执行修正类支持关闭浏览器就失效的情况设置COOKIE_EXPIRE为0或者或者在使用的时候传递参数0::set($,$,0);项目编译缓存文件也加上是否去掉注释的开关
[1.0.3 版本]
增加空模块支持如果指定的模块不存在会首先定位是否存在Empty模块增加核心编译文件的去除空白和注释的开关,在入口文件定义STRIP_RUNTIME_SPACE常量为可以关闭去除空白和注释Action缓存由原来的userCache成员属性控制改为项目参数ACTION_CACHE_ON控制,便于增加数据库字段缓存的开关惯例配置增加DB_FIELDS_CACHE用以设置数据库字段是否缓存,默认进行缓存修正xcache和缓存方式的读写次数记录使用的时候,如果是id,不需要再定义getPk方法修正多语言和多模板的问题入口文件免设置APP_NAMEAPP_PATH完善类修正模板检查的时候组件化的支持类的查询操作支持连贯方法去掉了一些废弃的惯例配置参数,包括:DATA_CACHE_ON和DATA_CACHE_MAX惯例配置增加了DATA_CACHE_SUBDIR参数缓存方式是否自动使用子目录哈希缓存在项目根目录不存在的情况下自动创建完善对跨库查询的支持目录自动创建支持写入安全文件
Model类增加toArray方法修正因Log类的改动导致Trace错误信息无法正常显示的问题数据查询返回的由ArrayObject对象改成数组修正Model类的create方法在定义字段的下面的bug修正虚拟下面create方法的bugModel类的facade方法增加数据表字段的检测优化Image类的showAdvVerify方法修正标签库的compare标签Trace由原来的_trace.php更名为trace.php项目调试配置文件由原来的_debug.php更名为debug.php项目配置文件由原来的_config.php更名为config.php路由由原来的_routes.php更名为routes.php由原来的_htmls.php更名为htmls.phpModel类的create方法无需type参数,自动判断新增和编辑数据增加第一次运行目录自动生成功能(只需要定义入口文件)默认项目编译缓存目录为Temp目录
修正Db类在Oracle下面的parseLimit方法判断优化数据库驱动类的查询结果获取Model类增加字段的表达式插入和更新支持完善了Db类的条件查询字段中带有空格的处理Model类增加了delConnect方法用于删除动态增加的数据库连接增强了的支持可以设置是否需要Model类增加智能切换功能switchConnect方法可以自动识别是否是相同的数据库连接类型增加了组件模块的URL分割定义配置COMPONENT_DEPR包括对操作链的设置采用相同的参数定义修正Model类的count等会自动缓存的问题DB类默认关闭查询缓存修正RBAC组件的权限判断修正组件模块方式下面的模板文件../Public的替换修正Html的的actionlist属性的支持修正PDO类在某些数据库下面的getAll方法的BUG增加核心缓存文件的开关功能在入口文件里面设置CACHE_RUNTIME为false修正了使用组件模块的时候模板文件中__URL__的解析问题修正模板和语言的切换Model类增加addConnect和switchConnect方法用于支持多数据库的连接修正了语言包的缓存导致切换语言无效的问题Db类增加多数据库连接的内置支持修正Model类在某些数据库下面不支持where1的情况Db类增加getLastSql方法用于获取最后一次查询的完善Log类的操作以及优化的写入修正model的数据库连接配置读取在返回之前保存日志记录完善compare标签改进Vendor函数的baseUrl参数定义改进项目语言包的定义不同语言分成不同子目录简化了方法的数据库缓存增加clearCache方法,用于清空项目相关缓存目录增加数据库驱动支持修正驱动修正app.php文件的编译缓存路径的问题增加编译缓存路径的设置RUNTIME_PATH
优化了执行效率和内存开销Import方法增加同名检测和类检测完善.2.0以下版本的支持去掉了核心对Config、Language、和类库的依赖去掉了Action类内置的默认操作改进了MySqli的驱动类库修正了不是自动增长的时候Model的方法返回错误修正了的escape_string方法修正了PDO的连接params参数问题修正了Model的findAll的关联查询问题修正了Model类的getModelName方法问题修正了RBAC的模块大小写设置去掉volistresultset标签,均作为iterate标签的别名增加了项目编译机制和核心类库编译机制标签库定义增加标签的别名定义XML模版结束标签增加对空格的支持增加compare标签和eqneqgtegtlteltheq和nheq标签别名增加了多模版和多语言的开关RBAC认证增加了操作的认证设置,之前只支持模块的认证设置
ThinkPHP是一个免费开源的,快速、简单的的,引入了全新的CBD(核心+行为+驱动)架构模式,同时支持SAE、REST和Mongo
2.1基础概念2.2获取ThinkPHP2.3关于版本2.4环境要求2.5许可协议
3.1系统特性3.2目录结构3.3MVC分层3.4执行流程3.5命名规范3.6入口文件3.7项目编译3.8URL访问3.93.103.113.123.133.143.15类库3.16扩展
4.1开发流程4.2入口文件4.3自动生成4.4项目配置4.5业务逻辑4.6模板定义4.7运行应用
5.1配置5.25.35.45.5错误和日志5.6调试5.7缓存5.8安全5.9部署5.10杂项
6.1类库扩展6.2应用扩展6.3扩展6.4扩展6.5驱动扩展6.6Widget扩展6.7行为扩展6.8扩展6.9扩展6.10模式扩展
7.1输出7.2使用函数7.37.4快捷输出7.5默认值输出7.6包含文件7.7导入文件7.8Vo7.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.1常量参考8.2配置参考8.3函数参考8.4类库参考8.5关于升级8.68.7开源应用8.8典型案例8.9大事记8.10鸣谢
2012年度最受欢迎中国开源软件第二名
参考资料:
词条标签:
合作编辑者:
搜狗百科词条内容由用户共同创建和维护,不代表搜狗百科立场。如果您需要医学、法律、投资理财等专业领域的建议,我们强烈建议您独自对内容的可信性进行评估,并咨询相关专业人士。
点击编辑词条,进入编辑页面}

我要回帖

更多关于 thinkphp3.0 chm 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信