## Niushop采用 數據業務層 (Service層)單獨分層的設計架構模式
一般的小型業務系統,大多數的設計是這樣的 :
Controller (Model +DAO)---> View
在控制器內同時實現數據業務邏輯(Model +DAO)的處理方式,把處理結構反饋給視圖層來渲染顯示。對于業務邏輯不是非常復雜的系統完全可以采用這樣的簡單設計來實現。這樣做的好處是編寫簡單,容易理解,需要進行代碼編寫處理的地方相對集中。
例如:實現一個訂單的創建業務
namespace app\Order\controller;
class Order
{
public function CreateOrder()
{
Db::startTrans();
try{
//步驟一創建訂單
$order = new Order;
$order->orderId = '20170601000001';
$order->order_date = 'now';
$order->save();
//步驟二創建訂單項
foreach($orderItem in $items){
$item = new OrderItem;
$item->orderId = $order->orderId;
$item->order_itemid = $orderItem->id;
$item->save();
}
// 提交事務
Db::commit();
} catch (\Exception $e) {
// 回滾事務
Db::rollback();
}
return 'Order_Create';
}
}
這樣的實現方式已辦理說是沒有問題。可是如果有這樣的情況,比如希望在創建購物車的時候也需要添加訂單項,這個時候上面的創建訂單項又要重寫一次。還有情況是用戶在修改訂單的時候也希望創建一個訂單項,這個時候同樣的方法又需要調用。如果像上面寫法,這樣會出現創建訂單項的代碼冗余調用。假如訂單項屬性字段很復雜,由于代碼冗余造成的維護和出錯率會越來越大,所以上面的設計方式就不太適合了。同時這樣設計有一個問題就是本來控制器的作用是數據和視圖的中間傳遞著,現在控制器充當2個職責,既負責視圖的顯示控制,又充當數據及業務邏輯的處理。導致代碼耦合性太大。
Model ---> DAO ---> Service ---> Controller ---> View
- 用戶使用手冊
- 首頁
- 歡迎頁
- 商品
- 商品列表
- 商品發布
- 商品分類
- 商品品牌
- 商品標簽
- 商品規格
- 供貨商
- 商品類型
- 咨詢管理
- 商品評價
- 相冊管理
- 商品回收站
- 訂單
- 訂單列表
- 營銷
- 優惠券
- 積分管理
- 滿減送
- 限時折扣
- 滿額包郵
- 會員
- 會員列表
- 粉絲列表
- 會員等級
- 會員提現
- 積分管理
- 余額管理
- 資產
- 銷售概況
- 商品分析
- 同行熱賣
- 運營報告
- 銷售排行
- 微信
- 公眾號管理
- 微信菜單管理
- 推廣二維碼管理
- 回復設置
- 消息素材管理
- 模板消息設置
- 分享內容設置
- 網站
- 電腦端
- 手機端
- 廣告位
- 商品樓層
- 站點幫助
- 文章管理
- 專題列表
- 用戶
- 用戶列表
- 用戶組列表
- 個人資料
- 供應商
- 供應商列表
- 供應提現
- 設置
- 基礎設置
- 附件上傳
- 注冊與訪問
- 圖片設置
- 第三方登錄
- 通知系統
- 支付配置
- 原路退款配置
- 會員提現設置
- 物流配送
- 客服設置
- 擴展
- 插件管理
- 鉤子管理
- 系統
- 模塊列表
- NiuShop問題整理
- 微信配置問題
- 微信菜單配置無效
- 微信用戶提示關注了仍提示未關注
- 模板消息
- 微信公眾號配置的注意事項檢測
- 如何關閉首頁的“關注公眾號”
- 第三方登錄問題
- qq登錄問題
- 微信第三方登錄
- 微信公眾號與開放平臺不是一個賬號
- 支付配置問題
- 微信支付配置
- 支付寶支付配置
- 分銷相關問題
- 計算思路
- 使用相關問題
- 物流公司以及配送相關的設置問題
- 七牛云存儲問題
- 綁定授權
- 升級流程
- 微信https請求
- 物流跟蹤(快遞鳥設置)
- 二次開發相關問題
- 緩存技術
- 數據庫調用
- 分頁列表
- 七牛云上傳配置問題
- 七牛云空間設置
- 配置自定義域名
- 七牛參數配置
- NiuShop開發手冊
- 基礎教程
- Niushop開源商城介紹
- Niushop安裝
- 目錄結構介紹
- 環境要求
- 模塊介紹
- 數據表結構說明
- 偽靜態(隱藏index.php)
- 添加后臺菜單
- 公眾號支付配置流程
- 開發教程
- 規格表設計原理機制
- 商品屬性表關系
- ajax分頁
- Data數據業務層設計
- 積分
- 常見問題