thinkphp框架使用心得
接觸的第一個PHP框架就是TP,在使用的了一段時間后就放棄了,說實話TP的弊端挺多,之后又接觸laravel框架,慢慢的就愛上laravel這個框架了。這段時間由于公司的原因,又不得不使用thinkphp框架,在這里分享下使用心得。
TP框架這一塊,框架的耦合度高,整體代碼半面對對象半過程化,整體使用起來不夠方便,語義化很差;TP的默認路由還算不錯;MVC這一塊,控制器和應用請求、視圖耦合度很高,幾乎沒有對請求進行封裝,視圖模板不支持深層次的繼承,模板標簽太多不夠簡潔(雖然每個標簽都有最適合的應用場景),模型這塊沒有獨立的查詢構建器,而這一部分的職責基本由Model和DB類共同承擔了,關聯模型這塊沒有提供很好的預載入功能,存在N+1的問題;TP沒有提供豐富的服務層代碼,也沒有明顯的服務層概念,控制器之間的功能共享除了繼承沒有更好的方式;TP對于錯誤處理是通過返回值一層一層迭代的,而不是使用異常,程序越復雜,職責約分離迭代次數就越多
?
表單驗證心得:
TP沒有提供請求層的封裝,請求通過路由直接進入控制器,并且TP的驗證服務也是直接硬編碼到Model里面,并通過create方法觸發,create方法會完成數據字段的過濾,別名處理,驗證處理,和自動填充等,由于實際情況中很多時候我們的表比較復雜,表中很多字段并不需要客戶端的數據提交,例如:創建時間、狀態、操作用戶等等,那么只使用create方法做過濾是不夠的,這個時候這個任務就會交給控制器去做,控制器中的每個方法對應前端用的一個用戶請求,秉著客戶端的提交都是危險的,那么在這里我們需要對提交的參數進行篩選。
總結:控制器中做提交參數的篩選,然后由模型來做數據驗證
在laravel中有獨立的請求層,并且驗證是獨立的服務。
客戶端請求通過路由進入控制器,在進入控制器之前,laravel會通過參數的類型約束,利用反射技術來獲取當前請求的實例,并根據請求定義的驗證規則,調用驗證服務,如果驗證不通過則報一個系統異常,laravel會捕獲這個異常并作出相應的處理,也就是說如果用戶請求不符合規定,這請求都無法進入控制器
在這里并不是拿thinkphp和laravel做對比,因為他兩壓根就沒有可比性,在這里只是說說別人的設計思路,這個真的很好
?
轉載于:https://www.cnblogs.com/xiaodo0/p/4612848.html
總結
以上是生活随笔為你收集整理的thinkphp框架使用心得的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: yum 自动使用光盘和网络源
- 下一篇: 第2章 数字之魅——求二进制中1的个数