tpframe基類介紹

2018-03-23 11:54 更新

因?yàn)閠pframe沒有更改任何thinkphp5的特性,所以你完全可以寫thinkphp5任何的語法來進(jìn)行二次開發(fā)

題外話:一個系統(tǒng)好與不好,不能全說是什么好就是什么好,幾個方面來看,性能?可擴(kuò)展性?可讀性?代碼之間的耦合度?可維護(hù)性?等等...

你寫的代碼,李四可能會接手,張三寫的代碼,你也可能會接手,這是最平常不過的事情了,那么這個時候上面的幾個方面除了可讀性重要一點(diǎn)外,其它貌似都顯得不是很重要,要想讓一個代碼所有人都能很快速的上手,那就得遵循一些代碼規(guī)范了

但是為了不破壞整個系統(tǒng)的結(jié)構(gòu),我建議按如下規(guī)范對TPFrame進(jìn)行二次開發(fā)

層次結(jié)構(gòu)要分明

1、控制層

只參與數(shù)據(jù)轉(zhuǎn)發(fā),服務(wù)調(diào)用,數(shù)據(jù)渲染之類的操作

2、服務(wù)層

數(shù)據(jù)驗(yàn)證,邏輯調(diào)用,后期數(shù)據(jù)處理操作

3、邏輯層

數(shù)據(jù)庫CURD操作,邏輯操作

4、驗(yàn)證層

數(shù)據(jù)合法性校驗(yàn)

5、模型層

自動完成、數(shù)據(jù)修改等操作(其實(shí)真正的CURD也是在模型層)

6、視圖層

頁面展示

基類說明

所有層的基類都存在于common模塊層,這樣的目的是為了共用一些數(shù)據(jù),也便于每個層自己去擴(kuò)展自己的功能

控制器基類

類名:ControllerBase

所有控制器類都繼承于ControllerBase

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

寫法:

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

可以看到這里繼承是FrontendBase,而基本沒有繼承ControllerBase,為什么?我上面說了,是為了便于每個模塊的擴(kuò)展,而FrontendBase類

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

class FrontendBase extends ControllerBase { } </pre>

直接可以看到,該類直接繼承于ControllerBase,也沒有進(jìn)行任何的功能操作

服務(wù)層

服務(wù)器的基類在common模塊sevice里的ServiceBase,所有的服務(wù)類也要繼承于它,這里同樣的道理,都采用的是間接的繼承方式

ServiceBase > FrontendBase > ..

后面繼承前面的,一個基本的服務(wù)類

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

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

class User extends FrontendBase { .... } </pre>

邏輯層

邏輯層的方式類似,繼承關(guān)系如下:

Model>ModelBase>LogicBase>FrontendBase

可以看出logic實(shí)際上繼承的最終類是Model,所以邏輯層的操作CURD,實(shí)際上操作的是model層,一個邏輯層代碼案例:

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

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

class User extends FrontendBase { .... } </pre>

其它的層相對來說比較簡單,這里就不介紹了

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號