ThinkPHP的发展历程及特性
ThinkPHP,是为了简化企业级应用开发和敏捷WEB应用开发而诞生的开源轻量级PHP框架。
最早诞生于2006年初,2007年元旦正式更名为ThinkPHP,并且遵循Apache2开源协议发布。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进。 [1]
ThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架,诞生于2006年初,原名FCS,2007年元旦正式更名为ThinkPHP,遵循Apache2开源协议发布,从Struts结构移植过来并做了改进和完善,同时也借鉴了国外很多优秀的框架和模式,使用面向对象的开发结构和MVC模式,融合了Struts的思想和TagLib(标签库)、RoR的ORM映射和ActiveRecord模式。
ThinkPHP可以支持windows/Unix/Linux等服务器环境,正式版需要PHP5.0以上版本支持,支持MySql、PgSQL、Sqlite多种数据库以及PDO扩展,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年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扩展包;
2013年05月09日,ThinkPHP发布3.1.3完整版;
2013年12月18日,ThinkPHP发布3.2正式版;
2014年10月31日,ThinkPHP发布3.2.2完整版 [2] ;
2015年12月11日,ThinkPHP 5.0 Beta 发布;
2017年02月27日,Thinkphp5.0.5完整版正式发布 [3] ;
2018年05月02日,Thinkphp5.1.0RC版本发布; [4]
2019年04月22日,Thinkphp6.0RC2版本发布 [5] ;
2019年08月16日,Thinkphp6.0RC4版本发布 [6] ;
2019年12月24日,Thinkphp6.0.1版本发布 [7] ;
简单易用
模型(M):模型的定义由Model类来完成。Model类位于项目目录下面的LibModel目录。
THINKPHP初始页面
控制器(C):应用控制器(核心控制器)和Action控制器都承担了控制器的角色,区别在于Action控制器完成业务过程,而应用控制器(App类)负责调度控制。Action控制器位于项目目录下面的LibAction目录。
视图(V):模板的实现是和框架无关的,做到了100%分离,可以独立预览和制作。模板目录位于项目目录下面的Tpl目录。
独创机制
ThinkTemplate是一个使用了XML标签库技术的编译型模板引擎,支持两种类型的模板标签,使用了动态编译和缓存技术,而且支持自定义标签库。其特点包括:
聚合模型是一种虚拟模型,用于把数据表的字段抽象化,更加容易理解和操作。
我们可以把数据表中的某些属性进行数据封装,这样就把枯燥的数据表字段赋予更好的可读性。
ThinkPHP在ORM模型里面模拟实现了数据库的视图模型,该功能可以用于多表查询。
要定义视图对象,需要设置viewModel为true,然后设置viewFields属性即可。
ThinkPHP的模型支持主从式数据库的连接,配置DB_DEPLOY_TYPE为1可以采用分布式数据库支持。
ThinkPHP在项目配置上面创造了自己独有的分层配置模式,其配置层次体现在:惯例配置-->项目配置-->模块配置-->操作(动态)配置,优先顺序从右到左(在没有生效的前提下)。
ThinkPHP内置了静态缓存的功能,并且支持静态缓存的规则定义。要使用静态缓存功能,需要开启HTML_CACHE_ON参数,并且在项目配置目录下面增加静态缓存规则文件htmls.php。
ThinkPHP框架通过基类库的概念把所有系统类库都集成在一起,包括ThinkPHP的核心类库。
基类库分成Think核心类库、ORG扩展类库,在这主要介绍的是核心基类库,核心基类库的作用是完成框架的通用性开发而必须的基础类和常用工具类等,包含有:
ThinkPHP内置了一个系统公共函数库,提供了一些系统需要的函数,系统函数库位于ThinkPHP的Common目录下面,名称为functions.php。
每个项目可以定义自己的函数库,位于项目的Common目录下面的common.php文件。
如果项目在Common目录下面有定义自己的common.php文件,框架会在初始化的时候自动导入,而无需自己导入。
Import方法是ThinkPHP内建的类库和文件导入方法,提供了方便和灵活的类似于命名空间的文件导入机制。
ThinkPHP的发展历程及特性相关推荐
- 腾讯云为金融换“心“,TDSQL的发展历程和特性
TDSQL的发展历程 TDSQL是针对金融联机交易场景推出的强一致性数据库解决方案,产品形态为一个数据库集群,具备高性能低成本.线性水平扩展.金融级高可用.企业级安全性.全球灵活部署.数据强一致性等特 ...
- JavaScript异步调用的发展历程
同步与异步 通常,代码是由上而下依次执行的.如果有多个任务,就必须排队,前一个任务完成,后一个任务才能执行.这种连续的执行模式就叫做同步. a(); b(); c(); 复制代码 上面代码中,a.b. ...
- 焦李成教授谈深度神经网络发展历程
来源:西电人工智能学院 摘要:焦李成教授谈深度神经网络发展历程 2018年11月18日下午,计算机科学与技术学部主任.人工智能学院焦李成教授在成都参加了由中国人工智能学会主办的人工智能大讲堂并做特邀报 ...
- 细说JavaScript异步函数发展历程
2019独角兽企业重金招聘Python工程师标准>>> < The Evolution of Asynchronous JavaScript >外文梳理了JavaScri ...
- node windows更新_node.js 01 简介 - 产生,发展历程,优势,适用场景,实际应用
node.js是什么 上面是来自于node.js 官网 (https://nodejs.org)的介绍.翻译过来,意思是node.js 基于JavaScript, 需要运行在Chrome V8 的 J ...
- JAVASCRIPT发展历程
JAVASCRIPT发展历程 诞生 JavaScript 因为互联网而生,紧跟着浏览器的出现而问世.回顾它的历史,就要从浏览器的历史讲起. 1990年底,欧洲核能研究组织(CERN)科学家 Tim B ...
- 目标检测近5年发展历程概述(转)
目标检测近5年发展历程概述,从R-CNN到RFBNet(2013--2018)(转) 2018年09月24日 12:32:02 C小C [时间]2018.09.24 [题目]目标检测近5年发展历程概 ...
- Redis消息队列发展历程
简介:Redis是目前最受欢迎的kv类数据库,当然它的功能越来越多,早已不限定在kv场景,消息队列就是Redis中一个重要的功能.Redis从2010年发布1.0版本就具备一个消息队列的雏形,随着10 ...
- php发展历,PHP的发展历程
PHP的发展历程 了解一门语言,我们必须知道这门语言的发展史,现在我通过版本的变化以时间轴的形式来说明PHP的发展历程. 1.1995年初PHP1.0诞生 Rasmus Lerdof发明了PHP,这是 ...
最新文章
- 电脑与人脑,信息与知识
- python多线程为啥是假的?(GIL 全局解释器锁)(python多线程不适合并行化的计算密集型代码)
- 交叉验证(Cross Validation)方法思想简介
- 用户体验与可用性测试_可用性作为用户体验的原则
- python简易发红包_学习python:练习5.简单红包程序
- dt dl dd 的英文含义
- Hibernate【2】——封装工具、HibernateUtil类以及DAO层的BaseDAO类
- MySQL 编码相关小结
- redhat linux防火墙状态,Redhat下配置iptables防火墙
- C语言 判断一个数是否为2的若干次幂
- 电脑系统重装出现蓝屏解决方法
- 高分一号二号PMS数据处理
- 大道至简:透过现象看本质
- ChemDraw如何画立体图?
- 鸟哥的Linux私房菜(服务器)- 第十一章、远程联机服务器SSH / XDMCP / VNC / RDP
- 源站IP暴露了怎么自查?
- 面试通过后如何拒绝HR拿offer
- idea提交git报401错误解决办法
- AD在绘制PCB时候出现 Un-Routed Net Constraint Violation问题解决
- 《高级语言程序设计》习题集