tpframe基类介绍

因为tpframe没有更改任何thinkphp5的特性,所以你完全可以写thinkphp5任何的语法来进行二次开发

题外话:一个系统好与不好,不能全说是什么好就是什么好,几个方面来看,性能?可扩展性?可读性?代码之间的耦合度?可维护性?等等...

你写的代码,李四可能会接手,张三写的代码,你也可能会接手,这是最平常不过的事情了,那么这个时候上面的几个方面除了可读性重要一点外,其它貌似都显得不是很重要,要想让一个代码所有人都能很快速的上手,那就得遵循一些代码规范了

但是为了不破坏整个系统的结构,我建议按如下规范对TPFrame进行二次开发

层次结构要分明

1、控制层

只参与数据转发,服务调用,数据渲染之类的操作

2、服务层

数据验证,逻辑调用,后期数据处理操作

3、逻辑层

数据库CURD操作,逻辑操作

4、验证层

数据合法性校验

5、模型层

自动完成、数据修改等操作(其实真正的CURD也是在模型层)

6、视图层

页面展示

基类说明

所有层的基类都存在于common模块层,这样的目的是为了共用一些数据,也便于每个层自己去扩展自己的功能

控制器基类

类名:ControllerBase

所有控制器类都继承于ControllerBase

打开ControllerBase类,你可以看到里面有很多的一些控制器里面要用的常量,可能会用到的一些操作都在里面。

写法:

<?php
namespace app\frontend\controller;
class Index extends FrontendBase
{
	...
}

可以看到这里继承是FrontendBase,而基本没有继承ControllerBase,为什么?我上面说了,是为了便于每个模块的扩展,而FrontendBase类

<?php
namespace app\frontend\controller;
use app\common\controller\ControllerBase;

class FrontendBase extends ControllerBase
{
}

直接可以看到,该类直接继承于ControllerBase,也没有进行任何的功能操作

服务层

服务器的基类在common模块sevice里的ServiceBase,所有的服务类也要继承于它,这里同样的道理,都采用的是间接的继承方式

ServiceBase > FrontendBase > ..

后面继承前面的,一个基本的服务类

<?php
// +----------------------------------------------------------------------
// | Author: yaoyihong <510974211@qq.com>
// +----------------------------------------------------------------------

namespace app\frontend\service;
use \tpfcore\Core;

class User extends FrontendBase
{
	....
}

逻辑层

逻辑层的方式类似,继承关系如下:

Model>ModelBase>LogicBase>FrontendBase

可以看出logic实际上继承的最终类是Model,所以逻辑层的操作CURD,实际上操作的是model层,一个逻辑层代码案例:

<?php
// +----------------------------------------------------------------------
// | Author: yaoyihong <510974211@qq.com>
// +----------------------------------------------------------------------

namespace app\frontend\logic;
use \tpfcore\Core;

class User extends FrontendBase
{
	....
}

其它的层相对来说比较简单,这里就不介绍了

爆料早知道:TPFrame v3.1已经发布,赶快下载体验吧!我有好想法