thinkphp action與model問題,急

來源:互聯網
上載者:User
關於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

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.