透析thinkphp5升级版开发框架tpframe

这里将全面的介绍这个框架给咱们开发带来的好处,让大家对它有更深层次的认识,喜欢或不喜欢的,欢迎你们前来留言讨论php

1、目录层次结构

如今不少的项目,特别是大一点的项目里面,都会有不少的人参与,要进行程序查询找、修改或是升级扩展的时候,目录结构一目了然就显得很重要了,更重要的是后面的人来接手的话,目录结构不清楚,程序结构很乱的话,那估计接手的人只有哭了前端

下面就是tpframe的框架目录结构,是否是很干净thinkphp

 

每一个目录结构:json

addon:插件目录浏览器

application:应该模块目录缓存

coreframe:核心程序目录服务器

data:运行时目录(缓存、上传文件等)app

extend:扩展目录(保留),为了保持tp5程序扩展的风格,若是你习惯tp5的开发风格,你也能够在这里面扩展框架

theme:模板目录(前台、后台)编辑器

是否是很一目了然,各个功能模块都很清楚分开存放呀

2、程序分层结构

分层并非tpframe弄出来的,而是把tp5的分层给充分利用起来,固然我这里不是说的程序框架模式,经典的还属MVC,那固然还有其它模式,像MVP,MVVM,CBD,ORM等等

我这里要说的是MVC更细化分层,每层的在功能设计中所起的做用,为何要这样设计等问题

我也看到过CV模式,有部分人就推崇这种简单直接的模式,其实这种就至关于原生PHP再升级一下而已,把逻辑相关独立出去,固然我想的是他们喜欢这种的目的就是以为简单,直接了当,有人说程序执行更快?加载的东西少?

哈哈,若是仅仅是为了速度问题,原生比什么框架都快,不是吗。因此讨论到这个问题你就输了(别太认真),一个框架好与很差,我的以为应该从以下方面来参考

?可读性好很差(换一我的能不能快速的入手)

?可维护性好很差

?程序可扩展性好很差

?程序之间耦合度是否达到尽量的低

?重复代码是否将到最低

......

说了这些我就会问,原生PHP能作到上面的某些方面么,就拿CV模式来讲,若是一个逻辑代码成千上万行了,改起来估计难度很大吧,动不动出错了怎么办,要在中间加一块功能,换一我的估计都不敢改了。

那么TPFrame框架的分层结构是怎么样的呢?我先来讲一个公司的事务处理流程

首先是公司的前台人员,若是有外来人员(浏览器),简单的事情(不进行数据处理)直接回复就能够,若是要设计到公司重要的事情,她们便把事情通报给相应的部门(对应的部门,为客户服务的)来处理,每一个部门处理重要事情总得要领导决策的吧(最终数据处理),而后再原路返回,再由前台人员把反馈结果给外来人员(浏览器),因此就获得了以下分层结构

1)、controller:控制层,控制转发,至关于前台

2)、service:服务层,为数据处理而服务器,出问题,回滚,数据拦截,验证等,至关于各部门

3)、logic:逻辑层,数据处理层(CURD操做),至关于领导

4)、view:视图层,这即是最张呈现给客户的方案

固然为了数据的更细化,规范化,还少不了其它的层

5)、model:模型层,数据自动处理(数据自动完成、数据修改),其实真正的数据处理层就是它

6)、validate:验证层,数据在进行CURD以前的验证操做可交给它

大家可去看thinkphp文档,这些层都是有的,只是它介绍的不是那么的详细。

固然有人说了,这样开发起来好复杂哦,固然,对于一些最终都是很简单的项目,能够认为它是有点复杂的,但对于 一个长期项目,之后要扩展,升级,维护的项目,这种分层绝对是有必要的。固然这样分层也减小了代码之间的耦合度。

3、程序代码结构

如今的不少项目需求都是各端都要求(app\mobile\pc),而在开发的时候,分三批人分别开发也好,一批人按计划开发也好,写好一套再写一套,仍是各写各的一套。。。咱们都知道,不论是app也好,mobile或pc,一个项目,他们的展现数据大部分都是相同的,也就是说他们对数据处理的大部分功能都是相同的,假若是分开写的话,就会有大量的代码重复,之后升级三端都是加,改也要全改,维护起来更是老火。

那么针对这种tpframe给出来的解决方案(建议):

1)、逻辑共用(放公共模块),固然除非你确定这个功能只有这个模块要使用,你就能够写在当前模块里面

2)、服务层各模块,由于模块(部门)对数据的处理可能不同(领导下达的任务),例如app可能要规范必定的数据,返回数据为json格式 ,而pc则不同

3)、控制器各模板,由于不一样端的入口可能不同

这里主要在逻辑层,由于它是最重要的,也是处理比较频繁的,它共用后,之后维护,升级都方便了。

4、程序扩展方式

用过微擎系统的人确定就知道,它的系统是经过插件的形式过行一步一步的扩展的,而这些插件是彻底独立的,这样即可以以插件的形式对系统进行任意功能的扩展了,但我发现它的插件里面有大量重要的代码,几个大的插件下来,动则几百M,大则几G,太臃肿。

tpframe一样实现了插件扩展系统的功能,并且进行了升级,各插件大量重复的功能模块可独立出来,每一个功能模块均可以插件的方式进行开发

 

tpframe插件分类:

1)、行为插件

该插件开发好后,只需要在需要显示的地方放置钩子便可,之后只需要在后台开启与关闭来控制。

好处:钩子放置能够在未开发插件功能前放置,之后需要的时候再开发也能够;在不改变前端代码的状况下可自由开发插件

例如:编辑器插件、登陆插件

2)、模块插件

该插件相似于thinkphp5的一个单独模块功能,它能够是独立的,有本身的数据管理功能

例如:cms插件、短信插件

3)、行为模块插件

它是行为插件与模块插件的组合

也就是说它也能够放置钩子,一样也有后台数据管理功能

例如:幻灯片插件

插件可简单的进行安装与卸载

OK ,这就是tpframe开发项目的一些优势吧,再次说明它不是cms系统,它是thinkplhp5的升级版框架,若是你以为不错,欢迎下载使用,开源免费的哦;若是你有独到的看法,欢迎留言

相关文章
相关标签/搜索