摘要:面向對象編程針對業務處理過程的實體及其屬性和行為進行抽象封裝,以獲得更加清晰高效的邏輯單元劃分。
thinkphp中使用AOP切面編程快速驗證我們的數據
1) 首先 查看一下我們的目錄結構
2)使用平常的寫法來構造一下我們的驗證
這里主要分四步在走,相對于使用獨立驗證器或者挨個數據驗證已經優化了大部分的代碼了,但是,當在使用中會發現,我們在多個驗證或者多個模塊的時候會出現重復性的冗余去寫這一串代碼
問題? 如何將上訴的代碼壓縮成一行呢
AOP: 在不修改源代碼的情況下給程序動態統一添加功能的一種技術。AOP實際是GoF設計模式的延續,設計模式孜孜不倦追求的是調用者和被調用者之間的解耦,提高代碼的靈活性和可擴展性,AOP可以說也是這種目標的一種實現
AOP、OOP在字面上雖然非常類似,但卻是面向不同領域的兩種設計思想。OOP(面向對象編程)針對業務處理過程的實體及其屬性和行為進行抽象封裝,以獲得更加清晰高效的邏輯單元劃分。
我們引入aop編程的思想來解決的我們的問題,通過將功能單一的模塊合并統一起來
我們在common下創建 validate目錄,并且創建一個BaseValidate文件,繼承 thinkvalidate
BaseValidate.php
param(); } # 進行驗證 if( !$this->check($data) ) { (new Base())->ajaxjson(Base::error, $this->getError()); # 拋出的自定義異常 } return true; }
優化后代碼
瞬間舒服了很多吧,省去了非常多的代碼了算是,因為這個東西在很多控制器下都是應該需要進行使用的
優化2如baseValidate中的代碼,其中有一串代碼是is_null,那是為了校驗所有傳遞上來的數據而編寫,當我們需要校驗所有的數據的時候只需要這樣寫
同樣可以校驗出數據,但是會有一個疑惑,我們沒有來獲取data數據,無法使用data數據,還是需要在控制器中重新進行獲取,這是不可取的,所以我選擇這樣做
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/31095.html
摘要:簡介什么是面向切面編程,是對傳統的面向對象編程的補充。通知有五種通知,執行前,執行后,執行成功后,執行拋出異常后,環繞通知。連接點連接點是一個應用執行過程中能夠插入一個切面的點。 OOP(Object Oriented Programming)面向對象編程解決了縱向上的層次分割,例如MVC模式將展示層、持久化層、邏輯處理層一一分開了,使得開發效率得到了較大提高,但是這只是縱向上的分割,...
摘要:簡介什么是面向切面編程,是對傳統的面向對象編程的補充。通知有五種通知,執行前,執行后,執行成功后,執行拋出異常后,環繞通知。連接點連接點是一個應用執行過程中能夠插入一個切面的點。 OOP(Object Oriented Programming)面向對象編程解決了縱向上的層次分割,例如MVC模式將展示層、持久化層、邏輯處理層一一分開了,使得開發效率得到了較大提高,但是這只是縱向上的分割,...
摘要:閱讀原文造個輪子我學到了什么聽說的最多的是不是不要重復的造輪子不要被這句話蒙騙了,這句話應該還沒說完整,在什么情況下不要造輪子實際項目中由于工期和質量原因,肯定不希望你造輪子,你造輪子花費時間且質量不如現有的輪子。 閱讀原文:造個輪子,我學到了什么 聽說的最多的是不是不要重復的造輪子?不要被這句話蒙騙了,這句話應該還沒說完整,在什么情況下不要造輪子?實際項目中由于工期和質量原因,肯定不...
閱讀 1988·2021-11-24 09:38
閱讀 3347·2021-11-22 12:07
閱讀 1918·2021-09-22 16:03
閱讀 1974·2021-09-02 15:41
閱讀 2631·2021-07-24 23:28
閱讀 2222·2019-08-29 13:17
閱讀 1562·2019-08-29 12:25
閱讀 2676·2019-08-29 11:10