### 最佳實踐
* * * * *
模型是代表業務數據、規則和邏輯的中心地方,通常在很多地方重用, 在一個設計良好的應用中, 模型通常比控制器代碼多。
歸納起來,模型
* 可包含屬性來展示業務數據;
* 可包含驗證規則確保數據有效和完整;
* 可包含方法實現業務邏輯;
* 不應直接訪問請求,session和其他環境數據, 這些數據應該由控制器傳入到模型;
* 應避免嵌入HTML或其他展示代碼,這些代碼最好在 視圖中處理;
* 單個模型中避免太多的 場景
在開發大型復雜系統時應經常考慮最后一條建議, 在這些系統中,模型會很大并在很多地方使用,因此會包含需要規則集和業務邏輯, 最后維護這些模型代碼成為一個噩夢, 因為一個簡單修改會影響好多地方, 為確保模型好維護,最好使用以下策略:
定義可被多個 應用主體 或 模塊 共享的模型基類集合。 這些模型類應包含通用的最小規則集合和邏輯。
在每個使用模型的 應用主體 或 模塊中, 通過繼承對應的模型基類來定義具體的模型類, 具體模型類包含應用主體或模塊指定的規則和邏輯。
例如,在高級應用模板, 你可以定義一個模型基類`common\models\Post`, 然后在前臺應用中,定義并使用一個繼承`common\models\Post`的具體模型類`frontend\models\Post`, 在后臺應用中可以類似地定義backend\models\Post。 通過這種策略,你清楚`frontend\models\Post`只對應前臺應用, 如果你修改它,就無需擔憂修改會影響后臺應用。
- 前文
- 安裝前的準備
- windows安裝Composer
- Linux安裝Composer
- 開始使用
- 安裝yii2.0
- 初始化項目
- 檢測運行環境
- 數據庫
- 連接數據庫
- 添加
- 查詢
- join
- joinWith
- with
- asArray
- offset
- filterWhere
- 關聯查詢
- 更新
- AR更新
- with和JoinWith的區別?
- Yii2.0框架基礎--數據查詢之AR類方法一
- 數據庫遷移Migration
- 查看最后執行SQL語句
- 事務處理
- 例子
- 控制器
- rules驗證方法
- behaviors行為
- actions動作
- 模型
- 模型使用
- attributeLabels
- tableName
- fields
- 視圖
- 顯示視圖
- 獲取配置參數
- 格式化時間顯示
- Activeform效果
- Activeform表單部分組件使用方法
- RESTful服務
- 版本化控制
- 郵件mail
- 郵件配置
- 郵件樣板
- session
- Yii2.0 Session操作大全(增、刪、改、銷毀、Session數組賦值、讀取)
- 緩存
- 跨APP讀取緩存(文件緩存)
- Memcache
- 最佳實踐
- 控制器
- 模型
- 視圖
- 常見問題
- 解決根目錄沒有vendor目錄
- 安裝composer-asset插件錯誤
- Url隱藏index.php
- nginx配置
- Apache配置
- 配置
- 設置系統默認中文提示
- 數據庫問題
- where和andWhere不能同時使用嗎?
- debug
- 編輯器使用技巧
- phpstorm
- Redis
- redis安裝
- redis例子
- RBAC
- Redis和memcache概念
- 生成接口文檔
- Swagger安裝
- Swagger語法
- 擴展
- 七牛云存儲
- 視頻縮略圖
- Pjax
- A鏈接不能跳轉解決辦法