thinkphp给需要的用户带来非常方便全面的php服务框架,不仅具有速度快兼容性高的优点,还有许多全新的功能以及不同的模式给使用者带来工作效率的提高以及便捷的使用效果。喜欢的朋友赶紧来旋风软件园下载体验吧!
thinkphp框架(php框架)介绍:
thinkphp框架是目前国内领先的web应用开发框架,是一个免费开源、快速而且简单的面向对象的轻量级php开发框架,并且遵从apache2开源协议发布,是专门为了简化企业级应用开发和敏捷web应用开发而诞生的。它拥有众多优秀的功能和特性,经过三年多发展的同时,在社区团队的积极参与下,thinkphp框架在易用性、扩展性和性能方面经过不断优化和改进,可以稳定用于商业以及门户级的开发。
thinkphp框架特点:
1、简单易用
模型(m):模型的定义由model类来完成。model类位于项目目录下面的libmodel目录。
thinkphp初始页面控制器(c):应用控制器(核心控制器)和action控制器都承担了控制器的角色,区别在于action控制器完成业务过程,而应用控制器(app类)负责调度控制。action控制器位于项目目录下面的libaction目录。
视图(v):模板的实现是和框架无关的,做到了100%分离,可以独立预览和制作。模板目录位于项目目录下面的tpl目录。
2、独创机制
thinktemplate是一个使用了xml标签库技术的编译型模板引擎,支持两种类型的模板标签,使用了动态编译和缓存技术,而且支持自定义标签库。其特点包括:
1)支持xml标签库和普通标签的混合定义;
2)编译一次,下次直接运行而无需重新编译;
3)模板文件更新后,自动更新模板缓存;
4)自动加载当前操作的模板缓存文件,无需指定模板文件名称;
5)支持编码转换和content-type更换;
thinkphp目录结构6)模板变量输出前缀支持,避免变量名称冲突;
7)模板常量替换,无需设置模板变量;
8)支持变量组合调节器和格式化功能;
9)支持替换其它模板引擎插件使用;
10)支持获取模板页面内容。
内置xml模板引擎,支持标签库
3、富模型支持
1)聚合模型:
聚合模型是一种虚拟模型,用于把数据表的字段抽象化,更加容易理解和操作。
我们可以把数据表中的某些属性进行数据封装,这样就把枯燥的数据表字段赋予更好的可读性。
2)静态模型:
静态模型可以让模型的数据静态化,而不需要频繁和数据库打交道,可以用于不经常改变的数据表。而且thinkphp在orm层上面模拟实现了数据库的视图功能,这是thinkphp独创的一项技术,使得多表的关联查询具有更高的效率和可操作性,而无需定义复杂的关联关系,让关联关系更加浅显易懂。
有些时候,数据表的数据一旦添加后就不再容易变化,我们更希望把这样的模型数据静态化,而不需要再次访问数据库。thinkphp支持静态模型的概念,一旦把模型设置为静态,那么会在第一次初始化的时候获取数据表的全部数据,并生成缓存,以后不会再连接数据库。而只需要直接访问模型的datalist数据即可。
3)视图模型
thinkphp在orm模型里面模拟实现了数据库的视图模型,该功能可以用于多表查询。
要定义视图对象,需要设置viewmodel为true,然后设置viewfields属性即可。
4、curd和操作高度自动化支持
thinkphp提供了灵活和方便的数据操作方法,不仅实现了对数据库操作的四大基本操作(curd):创建、读取、更新和删除的实现,还内置了很多实用的数据操作方法,提供了activerecords模式的最佳体验。
5、分布式数据库支持
thinkphp的模型支持主从式数据库的连接,配置db_deploy_type为1可以采用分布式数据库支持。
6、多数据库连接和切换支持
如果需要在特殊的时候连接多个数据库,那么可以尝试使用thinkphp的多数据库连接特性:包括相同类型的数据库和不同类型的数据库。(注意:所谓的相同类型数据库的定义是指和项目配置文件或者模型的数据库连接的数据库类型相同。)
7、丰富的查询语言支持
thinkphp大多数情况使用的都是对象查询,因为充分利用了orm查询语言,了解查询条件的定义对使用对象查询非常有帮助,对于复杂的查询,或者从安全方面考虑,可以使用hashmap对象或者索引数组来传递查询条件。
8、目录结构自动创建thinkphp目录结构
thinkphp具有项目目录自动创建功能,你只需要定义好项目的入口文件,第一次执行入口文件的时候,系统会自动创建项目的相关目录结构,如果是linux环境下面需要给项目入口文件里面指定的路径设置可写权限。
9、activerecords模式和丰富的ror特性
thinkphp实现了activerecords模式的orm模型,采用了非标准的orm模型:表映射到类,记录(集)映射到对象,字段属性映射到对象的虚拟属性。最大的特点就是使用方便,从而达到敏捷开发的目的。
10、灵活简单的项目配置
thinkphp提供了灵活的配置功能,采用最有效率的php返回数组方式定义,支持惯例配置、项目配置、调试配置和模块配置,并且会自动生成配置缓存文件,无需重复解析的开销。对于有些简单的应用,你无需配置任何配置文件,而对于复杂的要求,你还可以增加模块配置文件,另外thinkphp的动态配置使得你在开发过程中可以灵活的调整配置参数。
thinkphp在项目配置上面创造了自己独有的分层配置模式,其配置层次体现在:惯例配置-->项目配置-->模块配置-->操作(动态)配置,优先顺序从右到左(在没有生效的前提下)。
11、模型自动验证和处理
系统内置了数据对象的自动验证功能,而大多数情况下面,数据对象是由表单提交的$_post数据创建。需要使用系统的自动验证功能,只需要在model类里面定义$_validate属性,是由多个验证因子组成的数组,支持的验证因子格式:验证字段,验证规则,错误提示,验证条件,附加规则,验证时间。
12、静态页面生成和多元化缓存机制
thinkphp内置了静态缓存的功能,并且支持静态缓存的规则定义。要使用静态缓存功能,需要开启html_cache_on参数,并且在项目配置目录下面增加静态缓存规则文件htmls.php。
13、丰富的数据库及pdo支持
seo和url路由支持
ajax支持
易扩展的系统基类库
14、系统基类库
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文件,框架会在初始化的时候自动导入,而无需自己导入。
15、匹配导入
import方法是thinkphp内建的类库和文件导入方法,提供了方便和灵活的类似于命名空间的文件导入机制。
16、自动编码转换
thinkphp框架的文件全部采用utf-8编码格式,utf-8的支持和自动输出编码转换的功能让页面表现更加灵活。您可以配置输出的页面编码格式,如gb2312等(默认采用utf-8输出)。系统根据配置文件中设置的编码格式自动对页面进行编码转换,支持iconv和mb_string两种方式,为了提高效率,如果系统的模板编码设置和输出编码设置项相同,则不会进行编码转换。thinkphp可以设置模板编码、输出编码和数据库编码,并自动完成转换工作,让你的应用不再受编码的苦恼。
软件优势:
引入容器和facade支持
依赖注入完善和支持更多场景
重构的(对象化)路由
取消系统常量
助手函数增强
类库别名机制
模型和数据库增强
支持注解路由
跨域请求支持
配置和路由目录独立
验证类增强
模板引擎改进
支持psr-3日志规范
中间件支持(v5.1.6+)