日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php进阶面向对象及tp5,TP5实战技巧---开发思路 引路造桥

發布時間:2023/12/10 php 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php进阶面向对象及tp5,TP5实战技巧---开发思路 引路造桥 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

## TP5實戰技巧實例---開發思路

> 子曰:“學而不思則罔,思而不學則殆。”

[TOC]

### 利用TP的MVC框架 做快速開發

>[success] 寫在前面的話:既然選擇TP5框架,我推薦大家要通讀完全開發手冊,我這里并不是要大家記住每一個方法,每一個細節.而是要求大家心理清楚TP5到底有哪些功能,能替我們解決什么樣的問題!

在程序開發中,隨著前端的技術發展,以及跨平臺的綜合應用,PHP為主流的程序開發越來越側重開發API.

我們就已API開發為例,介紹一些開發的實際流程.

![](https://box.kancloud.cn/2eb2dc6276bbce6ab92710731eabcb53_740x321.png)

>[info] 一 控制器(Controller)

> 獲取參數數據

> 二 驗證器(Validate)

> 驗證參數數據

> 三 模型 (model)

> 處理邏輯和數據 返回結果

> 四 控制器(Controller)

> 接受模型返回數據 顯示數據

#### 控制器數據獲取和處理

現在我從網上某TP5開源系統中找了一段控制器中的代碼

~~~

public function add()

{

//接收數據

if (Request::instance()->isPost()) {

$data['name'] = input('post.adname');

$data['description'] = input('post.description');

$data['link'] = input('post.link');

$data['position'] = input('post.pos');

$data['level'] = input('post.level');

$data['createtime'] = time();

//鏈接圖片

$coverPath = input('post.banner_path');

//實例化驗證器

$validate = Loader::validate('Banner');

//驗證

if (!$validate->scene('add')->check($data)) {

return $this->error($validate->getError());

}

//添加封面圖

if ($coverPath) {

$data['banner_path'] = $coverPath;

}

//插入數據表

$result = Db::name('Banner')->insert($data);

if ($result) {

return $this->success('添加成功',url('admin/banner/index'));

} else {

return $this->error('添加失敗');

}

} else {

$pos=Db::name('BannerPosition')->where('status',1)->field('id,title')->select();

$this->assign('pos',$pos);

return $this->fetch('add');

}

}

~~~

>[warning] 這段代碼是其實并沒有大的問題 這段添加代碼中整合靜態頁和數據邏輯處理

當post提交時候處理數據,get提交時候渲染靜態頁面

但有些問題還是能再改進一下就完美了

* * * * *

題外話:我現在我來簡單說一下這段代碼一些問題

1.在接收片段中使用了Request::instance()->isPost()

既然繼承控制器可以直接使用$this->request->isPost()

2.過多的使用了input助手函數

3.非MVC理念 model被完全忽略

* * * * *

我們先講一下控制器數據獲取和處理.我們還拿上面的源代碼 進行改進和示范吧

下面是我改進的方案,大家只要理解這樣做的好處就可以了.我會先定義一個參數數據的變量數組$param

~~~

$param=[

'name'=>'adname'

'description'=>'description'

... ...

];

~~~

我就寫兩個 做一下示范

另外我在控制器基類里寫了下面一段代碼

~~~

/**

* 數據庫字段 網頁字段轉換

* #User: Mikkle

* #Email:776329498@qq.com

* #Date:

* @param $array 轉化數組

* @return 返回數據數組

*/

protected function buildParam($array)

{

$data=[];

if (is_array($array)){

foreach( $array as $item=>$value ){

$data[$item] = $this->request->param($value);

}

}

return $data;

}

~~~

那我在繼承基類的控制器中 這樣寫代碼就可以執行了,$param_data就是你要獲取的參數值.

~~~

$param = [

'name'=>'adname'

'description'=>'description'

];

$param_data = $this->buildParam($param);

~~~

>[info]如上面的例子中的 $data['createtime'] = time();

這種固定的值的添加 記得扔到model的自動完成的方法完成

詳情參見 http://www.kancloud.cn/mikkle/thinkphp5_study/331967

#### 控制器中數據值的驗證

現在 數據已經獲取 下一步就要進行數據驗證

>[danger] 永遠不要相信前端發送過來的數據 把控絕對不能忽略

當然前端的校驗也是需要的 當后端必須要把關

上面這段驗證的代碼是沒有問題的 可以使用

~~~

//實例化驗證器

$validate = Loader::validate('Banner');

//驗證

if (!$validate->scene('add')->check($data)) {

return $this->error($validate->getError());

}

~~~

當然 使用官方的教程里的方法也是可以的

~~~

$result = $this->validate($data, $validate_name);

if (true !== $result) return ['code' => '1003', 'msg' => $result,];

~~~

>[info] $validate_name 你控制器的名稱

#### 驗證數據通過后調用Model里的方法獲取返回值

~~~

$model_edit = Loader::model($model_name);

if (!$model_edit) return $this->showReturnCode(1010);

$data = $model_edit->$action_name($param_data);

~~~

>[info] $model_name 你模型的名稱

> $action_name 你模型中執行方法的名稱

這時 絕大多少的操作就基本完成了 根據需求返回$data的值就行了

##現在就是思考的時間 萬能的yuan們 如何才能讓開發更簡單呢

未完 待續--

詳情見下節

大家希望后續看到哪方面的 可以在這里留言給我!

總結

以上是生活随笔為你收集整理的php进阶面向对象及tp5,TP5实战技巧---开发思路 引路造桥的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 伊人久久久久久久久 | 日韩精品电影一区二区三区 | 黄色网免费 | 午夜性色| 催眠调教艳妇成肉便小说 | 国产又爽又黄的激情精品视频 | 国产欧美一区二区精品久久久 | 精品人妻一区二区三区久久夜夜嗨 | 欧美打屁股| 一级性生活毛片 | 亚洲精品国产精品乱码不卡 | 日本在线成人 | 亚洲人 女学生 打屁股 得到 | 午夜性色福利视频 | 91桃色网站| 亚洲欧美在线免费 | 成人av免费网址 | 91漂亮少妇露脸在线播放 | 亚洲清纯唯美 | 人妻少妇被猛烈进入中文字幕 | av资源网站 | 夜夜撸小说 | 欧美亚洲伦理 | 深夜福利国产精品 | 麻豆 美女 丝袜 人妻 中文 | 久久久久久一区二区 | 一区二区三区小说 | 人人爽人人爽人人爽人人爽 | 高清国产视频 | 久久亚洲色图 | 小镇姑娘国语版在线观看免费 | 成人在线视频一区二区三区 | 韩国伦理中文字幕 | 国产成人精品毛片 | 黄色小视频国产 | 最近中文字幕 | 中国毛片网站 | 久久精品国产精品亚洲毛片 | 国产精品免费精品一区 | 色婷婷电影网 | 欧美亚色 | 久久午夜神器 | 天天摸夜夜操 | 日本久久免费 | 2020亚洲男人天堂 | 日本精品久久久久 | 精品午夜一区二区三区 | 国产盗摄视频在线观看 | 成年人在线视频免费观看 | 高清免费视频日本 | 一区二区三区不卡视频在线观看 | 亚洲欧美第一 | 黄色片一区 | 无码精品国产一区二区三区免费 | 久久午夜场 | 国产av无码专区亚洲av麻豆 | 91九色蝌蚪porny | 一区二区在线免费观看视频 | 天堂网视频在线 | 国产女主播喷水高潮网红在线 | 日产精品久久久久 | 久久人人爽天天玩人人妻精品 | 91一区在线观看 | 久热精品在线观看视频 | 国产特级aaaaaa大片 | 亚洲美女激情视频 | 亚洲制服丝袜诱惑 | √天堂中文官网8在线 | 97人妻天天摸天天爽天天 | 91原创视频在线观看 | 国产激情一区二区三区视频免樱桃 | 国产绿帽刺激高潮对白 | www.com毛片 | 久久亚洲AV无码 | 9999久久久久 | 操欧美女人 | 操处女逼视频 | 久久久久亚洲精品 | 国产小视频网站 | 亚洲精品小视频 | a级免费观看 | 玉丸(双性调教) | 免费看国产精品 | 天天曰夜夜操 | 国产制服91一区二区三区制服 | 91精品人妻一区二区三区果冻 | 国内久久精品视频 | 午夜精品久久久久 | 激情xxx | 久久久99精品国产一区二区三区 | 性歌舞团一区二区三区视频 | 一区二区精品在线 | 成人福利视频在线观看 | 初恋视频污 | 亚洲欧美国产另类 | 琪琪色影音先锋 | 爱的色放3 | 麻豆免费在线 | h视频在线免费看 |