關於thinkphp我看官方demon都把商務邏輯寫在action裡,model裡只是做驗證和自動完成,不過也有一部分是action和model混寫,上github看了下關於thinkphp的項目更暈了,幾乎是各寫各的,有的寫action裡有的寫model裡,到底用thinkphp架構該把商務邏輯寫在哪?
回複內容:
關於thinkphp我看官方demon都把商務邏輯寫在action裡,model裡只是做驗證和自動完成,不過也有一部分是action和model混寫,上github看了下關於thinkphp的項目更暈了,幾乎是各寫各的,有的寫action裡有的寫model裡,到底用thinkphp架構該把商務邏輯寫在哪?
基本思想還是傳統的MVC(Model,View,Controller)
通常Controller是負責商務邏輯。
View負責處理資料顯示
Controller 用於處理應用程式資料邏輯。
為啥這樣?
有助於管理複雜的應用程式,因為您可以在一個時間內專門關注一個方面
MVC 分層同時也簡化了分組開發。不同的開發人員可同時開發視圖、控制器邏輯和商務邏輯。
模式的誕生為瞭解決問題的。
對於你來說。如果是你一人做。鍛煉下。你可以按照自己的習慣寫。這都無所謂。
但是我覺得最好養成習慣。這樣分離比較清晰易懂。對於你以後與別人項目協作也是很好的。
團隊合作做的話,那更需要分層。
借用百度一張圖,你可以清晰看下。
樓主似乎還沒對MVC理解透。thinkphp裡面m和c其實並沒有嚴格的劃分。可以直接在c裡面操作資料庫資料。
簡單的,複用性不高,直接就寫Action裡面就行。
如果複用性比較高的,可以寫到Model裡面。
在Thinkphp裡很多人都認為M實際已經提煉到M()這個方法裡了。
寫在Model裡面的關聯到資料庫欄位的映射,才更貼切Model的意思。
Thinkphp的分層本來就不是明顯了。比糾結,寫著寫著,就知道什麼代碼要提取到Model中去了。
搜尋service layer pattern, entity+repository+service