20.1 ThinkPHP简介

20.1 ThinkPHP简介

ThinkPHP可以更方便和快捷地开发和部署应用,其不仅仅是企业级应用,任何PHP应用开发都可以从ThinkPHP的简单和快速的特性中受益。ThinkPHP本身具有很多的原创特性,并且倡导“大道至简,开发由我”的开发理念,用最少的代码完成更多的功能,宗旨就是让web应用开发更简单、更快速。

ThinkPHP遵循Apache 2开源许可协议发布,意味着可以免费使用ThinkPHP,甚至允许把基于ThinkPHP开发的应用开源或商业产品发布/销售。

20.1.1 ThinkPHP框架的特点

ThinkPHP是一个性能卓越并且功能丰富的轻量级PHP开发框架,其宗旨就是让Web应用开发更简单、更快速。ThinkPHP值得推荐的特性包括:

类库导入:ThinkPHP是首先采用基于类库包和命名空间的方式导入类库,让类库导入看起来更加简单清晰,而且还支持冲突检测和别名导入。为了方便项目的跨平台移植,系统还可以严格检查加载文件的大小写。

URL模式:系统支持普通模式、PATHINFO模式、REWRITE模式和兼容模式的URL方式,支持不同的服务器和运行模式的部署,配合URL路由功能,可以随心所欲地构建需要的URL地址和进行SEO优化工作。

编译机制:独创的核心编译和项目的动态编译机制,有效减少OOP开发中文件加载的性能开销。

查询语言:内建丰富的查询机制,包括组合查询、复合查询、区间查询、统计查询、定位查询、动态查询和原生查询,让数据查询简洁高效。

视图模型:轻松、动态地创建数据库视图,多表查询不再烦恼。

分组模块:不用担心大项目的分工协调和部署问题,分组模块解决跨项目的难题。

模板引擎:系统内建了一款卓越的基于XML的编译型模板引擎,支持两种类型的模板标签,融合了Smarty和JSP标签库的思想,支持标签库扩展。通过驱动还可以支持Smarty、EaseTemplate、TemplateLite、Smart等第三方模板引擎。

Ajax支持:内置Ajax数据返回方法,支持JSON、XML和EVAL格式返回客户端,并且系统不绑定任何Ajax类库,可随意使用自己熟悉的Ajax类库进行操作。

缓存机制:系统支持包括文件方式、APC、Db、Memcache、Shmop、Eaccelerator和Xcache在内的多种动态数据缓存类型,以及可定制的静态缓存规则,并提供了快捷方法进行存取操作。

20.1.2 环境要求

ThinkPHP可以支持Windows/UNIX服务器环境,可运行于包括Apache、IIS在内的多种Web服务器。需要PHP 5及以上版本支持。支持mysql、MSSQL、PgSQL、Sqlite、oracle等数据库。

20.1.3 下载ThinkPHP框架

ThinkPHP是一个免费、开源、快捷、简单的OOP轻量级PHP开发框架,它遵循Apache 2开源协议发布,是为了敏捷的企业级开发而诞生的。获取ThinkPHP的方式有很多。

官方网站:http://thinkphp.cn。

SVN的下载地址。

完整版本:http://thinkphp.googlecode.com/svn/trunk。

核心版本:http://thinkphp.googlecode.com/svn/trunk/ThinkPHP。

说明

本章将以ThinkPHP 3.0为例来讲解ThinkPHP框架的使用。

1.什么是MVC

MVC是一种经典的程序设计理念,此模式将应用程序分为3个部分:模型层(Model)、视图层(View)、控制层(Controller), MVC是这3个部分英文字母的缩写。

注意

MVC设计模式产生的原因:应用程序中用来完成任务的代码——模型层(也叫业务逻辑),通常是程序中相对稳定的部分,重用率高;而与用户交互的界面——视图层,却经常改变。如果因需求变动而不得不对业务逻辑代码修改,或者要在不同的模块中应用到相同的功能而重复地编写业务逻辑代码,不仅降低整体程序开发的进度,也会使未来的维护变得非常困难。因此,将业务逻辑代码与外观分离,将会更方便地根据需求改进程序,这就是MVC设计模式。

在PHP Web开发中,MVC设计模式的各自功能及相互关系如图20.1所示。

图20.1 MVC关系图

模型层(Model)

模型层是应用程序的核心部分,它可以是一个实体对象或一种业务逻辑,它之所以称为模型,是因为它在应用程序中有更好的重用性和扩展性。

视图层(View)

视图层提供应用程序与用户之间的交互界面,在MVC理论之中,这一层并不包含任何的业务逻辑,仅提供一种与用户交互的视图。

控制层(Controller)

控制层用于对程序中的请求进行控制,作用就像国家的宏观调控,它可以选择调用哪些视图或者调用哪些模型。

2.什么是CURD

CURD是数据库操作的缩写词,也是几种数据库操作技术的缩写,C代表创建(Create), U代表更新(Update), R代表读取(Read), D代表删除(Delete)。CURD定义了用于处理数据的基本操作。之所以将CURD提升到一个技术难题的高度,是因为完成一个涉及在多个数据库系统中进行CURD操作的汇总相关的活动,其性能可能会随数据关系的变化而有非常大的差异。

CURD在具体的应用中并非一定使用create、update、read和delete字样的方法,但是它们完成的功能是一致的。例如,ThinkPHP就是使用add、save、select和delete方法表示模型的CURD操作。

3.什么是单一入口

单一入口通常是指一个项目或者应用具有一个统一(但并不一定是唯一)的入口文件,也就是说项目的所有功能操作都是通过这个入口文件进行的,并且往往入口文件是第一步被执行的。

单一入口的好处是项目整体比较规范,因为同一个入口,往往其不同操作之间具有相同的规则。另外一个方面就是单一入口控制较为灵活,因为拦截方便,类似如一些权限控制、用户登录方面的判断和操作可以统一处理。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

微信扫一扫

微信扫一扫

微信扫一扫,分享到朋友圈

20.1 ThinkPHP简介