• CMS
    内容发布型网站
  • 结构清晰 易于发布
    功能强大 容易扩展
  • B2C
    购物型网站
  • 安全,优化,功能齐全
    及完善的后台管理
  • 客户定制
    系统开发
  • 用我们精湛的技术
    打造属于你的系统
  • 完善的
    解决方案
  • 业务背后是强大的
    开源社区, 你事业无忧
  • 后续
    技术支持
  • 稳定的后续技术支持
    为你的业务保驾护航

ThinkPHP

浏览位置

ThinkPHP是一个开源的PHP框架,是为了简化企业级应用开发和敏捷WEB应用开发而诞生的。最早诞生于2006年初,原名FCS,2007年元旦正式更名为ThinkPHP,并且遵循Apache2开源协议发布。早期的思想架构来源于Struts,后来经过不断改进和完善,同时也借鉴了国外很多优秀的框架和模式,使用面向对象的开发结构和MVC模式,融合了Struts的Action和Dao思想和JSP的TagLib(标签库)、RoR的ORM映射和ActiveRecord模式,封装了CURD和一些常用操作,单一入口模式等,在模版引擎、缓存机制、认证机制和扩展性方面均有独特的表现

简介

  ThinkPHP可以支持WIN/Unix服务器环境,正式版需要PHP5.0以上版本支持,支持Mysql、PgSQL、Sqlite以及PDO等多种数据库,ThinkPHP框架本身没有什么特别模块要求,具体的应用系统运行环境要求视开发所涉及的模块。

  使用ThinkPHP,你可以更方便和快捷的开发和部署应用,当然不仅仅是企业级应用,任何PHP应用开发都可以从ThinkPHP的简单、兼容和快速的特性中受益。简洁、快速和实用是ThinkPHP发展秉承的宗旨,为此ThinkPHP会不断吸收和融入更好的技术以保证其新鲜和活力,提供WEB应用开发的最佳实践。

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

  ThinkPHP遵循 Apache2 开源许可协议发布,意味着用户可以免费使用ThinkPHP,甚至允许把用户的ThinkPHP应用采用商业闭源发布。
 
基本介绍

  ThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架,诞生于2006年初,原名FCS,2007年元旦正式更名为ThinkPHP,遵循Apache2开源协议发布,从Struts结构移植过来并做了改进和完善,同时也借鉴了国外很多优秀的框架和模式,使用面向对象的开发结构和MVC模式,融合了Struts的思想和TagLib(标签库)、RoR的ORM映射和ActiveRecord模式,封装了CURD和一些常用操作,单一入口模式等,在模版引擎、缓存机制、认证机制和扩展性方面均有独特的表现,也已经越来越多地受到国内PHP开发人员的认可。


ThinkPHP的几个重要的概念

  要掌握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的分层架构

  ThinkPHP的分层架构采用三层架构模式:

  表现层:包含模板视图、用户界面、JS、Flash等通过模板引擎的支持,可以使用标签定义简化表现层的定义工作。

  业务层:包含业务接口层、业务逻辑层、实体层、数据访问层Action控制器作为业务接口层,提供系统各种业务操作的入口。因此,不提倡在控制器类中写过多的业务逻辑代码,虽然说很难严格控制。具体的业务逻辑应该封装到数据访问对象(Dao)类中实现,如果觉得过于复杂,还可以把子业务在Helper类中包装后统一调用。业务处理过程一般会构造出业务实体对象(如Vo对象),对业务实体对象的存取通过数据访问层完成。数据访问层把实体对象和数据库数据之间建立映射关系,并且封装了通用的数据操作。

  数据层:目前支持的数据库有MySql、MsSql、PgSql、Oracle、Sqlite,最新版本已经提供PDO的支持,数据库的选用和业务逻辑没有关系。
 
现在联系