ThinkPHP是什么

ThinkPHP 是一个快速、兼容而且简单的轻量级国产 PHP 开发框架,遵循 Apache2 开源协议发布,从 Struts 结构移植过来并做了改进和完善,同时也借鉴了国外很多优秀的框架和模式,使用面向对象的开发结构和 MVC 模式。

ThinkPHP 是为了简化企业级应用开发和敏捷 WEB 应用开发而诞生的。最早诞生于 2006 年初,2007 年元旦正式更名为 ThinkPHP,并且遵循 Apache2 开源协议发布。ThinkPHP 从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进。

thinkphp

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 能够解决应用开发中的大多数需要,因为其自身包含了底层架构、兼容处理、基类库、数据库访问层、模板引擎、缓存机制、插件机制、角色认证、表单处理等常用的组件,并且对于跨版本、跨平台和跨数据库移植都比较方便。并且每个组件都是精心设计和完善的,应用开发过程仅仅需要关注您的业务逻辑。

特性简单易用

模型(M):模型的定义由 Model 类来完成。Model 类位于项目目录下面的 LibModel 目录。

控制器(C):应用控制器(核心控制器)和 Action 控制器都承担了控制器的角色,区别在于 Action 控制器完成业务过程,而应用控制器(App 类)负责调度控制。Action 控制器位于项目目录下面的 LibAction 目录。

视图(V):模板的实现是和框架无关的,做到了 100%分离,可以独立预览和制作。模板目录位于项目目录下面的 Tpl 目录。

重要的概念

要掌握 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 的支持,数据库的选用和业务逻辑没有关系。

相关开源项目

ThinkSNS

ThinkSNS 基于许多优秀的开源软件开发,提供全方位的社交网络(SNS)解决方案。ThinkSNS 源于办公圈项目,WEB 端基于国内技术领先的 ThinkPHP 框架开发,另外还有 IM 客户端软件。ThinkSNS 全部基于开源项目,同时也作为开源项目,免费提供给用户使用。项目框架都有完善的文档和实例,非常适合二次开发。能为致力于 SNS 方向的站长提供帮助,是我们的最大的梦想!

OneThink

OT 是 ThinkPHP 官方发布的内容管理框架;OneThink 以其便捷的建站、丰富的扩展、灵活的二次开发,以及云服务的支持,为广大个人和企业建站带来新的契机和机遇,即将成为互联网新的弄潮儿。

ThinkCMF

ThinkCMF 是由第三方团队开发的中文内容管理框架;ThinkCMF 是一款基于 PHP+MYSQL 开发的中文内容管理框架。ThinkCMF 提出灵活的应用机制,框架自身提供基础的管理功能,而开发者可以根据自身的需求以应用的形式进行扩展。每个应用都能独立的完成自己的任务,也可通过系统调用其他应用进行协同工作。在这种运行机制下,开发商场应用的用户无需关心开发 SNS 应用时如何工作的,但他们之间又可通过系统本身进行协调,大大的降低了开发成本和沟通成本。普通的 CMS(内容管理系统)一般不能完成所有的需求,而因为 CMS 在 ThinkCMF 内部只是已一个应用的形式存在,所以使用 ThinkCMF 你可以用 CMS 来管理你的内容,用电影网站系统来管理视频,用电商系统来管理电商网站。这些程序不会影响,你可以模块化的增加或减少应用。

tpflow

tpflow 基于 thikphp 5.1 开发的符合快速设计理念的工作流组件。

(0)
时间不会说谎  的头像时间不会说谎  

相关推荐

  • Surface Book 4什么时候发布,有望在2021年问世吗?

    SurfaceBook4什么时候发布(有望在2021年问世吗?)作为微软旗下的高端笔记本电脑系列,SurfaceBook一直备受关注。而现在,SurfaceBook4的发布时间成为了广大用户关注的焦点。那么,SurfaceBo

    2024年1月6日
  • 成都世界之窗在哪里,详细指南

    成都是一个充满活力和魅力的城市,吸引了众多游客前来探索这座城市的魅力。其中,成都世界之窗是一个备受游客欢迎的景点。那么,成都世界之窗在哪里呢?本文将为您提供详细的指南,帮助您找到成都世界之窗。一、成都世界之窗简介成都世界之窗是一个以世界

    2023年10月10日
  • win10如何系统修复系统,详细步骤分享

    在使用电脑的过程中,难免会遇到系统出现问题的情况。这时候,我们可以通过系统修复的方式来解决问题。那么,Win10如何系统修复系统呢?本文将为您详细介绍Win10系统修复的步骤。一、进入Win10系统修复模式1.首先,我们需要进入Win1

    2023年12月7日
  • 手机显示hd1是什么意思,解释一下

    在使用手机时,我们经常会遇到各种各样的问题,其中一个常见的问题是手机显示hd1是什么意思。这个问题可能让很多人感到困惑,因为他们不知道这个hd1到底是什么意思。在本篇文章中,我将会为大家详细解释一下手机显示hd1是什么意思,以及如何解决这个

    2023年12月2日
  • iPhone15Plus收不到微信消息怎么办?

    随着科技的迅猛发展,iPhone15Plus已经成为了人们生活中必不可少的一部分。然而,有些用户反映他们无法收到微信消息,这对于他们的日常通讯产生了一定的困扰。那么,如果iPhone15Plus收不到微信消息,我们应该怎么办呢?想要解决

    2024年2月1日
  • 2022年性价比办公鼠标:罗技 MX MASTER 2S

    罗技 MX Master 2S 是一款出色的办公鼠标。它感觉非常好,应该足够舒适,可以持续一整天而不会引起酸痛。它过多的可编程按钮选项也可能会取悦多媒体创作者,尽管那些手较小的人可…

  • 怎么查询手机号的机主姓名

    如果对方的手机号是移动号码,就到移动营业厅人工服务的地方,谎称交话费,给客服报一下手机号,客服会问你是某人的手机号,你就说不是转身走就行了。 手机号码查询机主姓名是很简单的,我们可…

  • 笔记本电脑防窥膜怎么贴,详细步骤解析

    随着科技的发展,笔记本电脑已经成为我们生活和工作中不可或缺的一部分。但是,随之而来的是我们的隐私安全问题。在公共场合使用笔记本电脑时,我们经常会发现旁边的人偷偷瞄我们的屏幕,这对我们的隐私安全造成了很大的威胁。为了解决这个问题,我们可以使用

    2023年10月16日
  • 美的空调KH,如何选择适合自己的型号

    随着夏季的来临,空调已经成为了人们生活中必不可少的家电之一。而在众多品牌中,美的空调KH系列因其高品质、高性价比而备受消费者青睐。但是,如何选择适合自己的型号呢?本文将详细介绍美的空调KH系列的特点以及如何选择适合自己的型号。一、美的空调

    2023年11月3日
  • 会议记录是什么

    会议记录是实录会议情况和信息的书面材料。凡是重要的会议都应该有书面记录。书面形式的会议记录一直是保留会议信息的普遍形式。 会议记录是实录会议情况和信息的书面材料。凡是重要的会议都应…

  • 谷歌将于7月1日停止其传统的免费G​​ Suite

    多年来,谷歌的生产力套件有很多名字。最初的 Google Apps 成为 G Suite 现在被称为 工作区. 在同一时间段内,该公司提供了同样多的方式来访问该软件,宣布新的订阅计…

  • 技嘉b75d3v是大板还是小板,该如何区分

    技嘉B75D3V是一款主板,但是对于很多人来说,他们并不清楚这款主板是大板还是小板。那么,如何区分技嘉B75D3V是大板还是小板呢?接下来,我们将为你详细介绍。一、什么是大板和小板?在了解技嘉B75D3V是大板还是小板之前,我们需要先了

    2023年10月23日
  • 手机处理器好意味着什么,为什么处理器是影响手机性能的关键

    手机处理器是影响手机性能的关键因素之一。随着手机的普及,人们对手机性能的要求也越来越高。因此,手机处理器的好坏直接影响到用户的使用体验。本文将从手机处理器的定义、影响因素、性能指标和选购建议等方面,详细讲解手机处理器好意味着什么。一、手机

    2023年12月9日
  • 卡西欧TR350,如何使用和维护

    卡西欧TR350是一款功能强大的数码相机,其高清晰度的照片和视频质量在业内享有盛誉。但是,如果您不知道如何正确使用和维护它,那么您的卡西欧TR350可能会出现问题。在本文中,我们将为您提供使用和维护卡西欧TR350的详细指南。第一部分:卡

    2023年10月28日
  • 三星s8有几种颜色,详细解答

    三星s8是一款备受瞩目的智能手机,它拥有出色的性能和设计,以及多种颜色供用户选择。在本文中,我们将详细解答三星s8有几种颜色,并为您介绍每种颜色的特点和操作步骤。一、三星s8的颜色种类三星s8共有五种颜色可供选择,它们是:极光银、极光黑

    2024年2月11日

发表回复

登录后才能评论