成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

thinkphp中使用AOP切面編程快速驗(yàn)證我們的數(shù)據(jù)

myshell / 3161人閱讀

摘要:面向?qū)ο缶幊提槍I(yè)務(wù)處理過程的實(shí)體及其屬性和行為進(jìn)行抽象封裝,以獲得更加清晰高效的邏輯單元?jiǎng)澐帧?/p>

 thinkphp中使用AOP切面編程快速驗(yàn)證我們的數(shù)據(jù)

1) 首先 查看一下我們的目錄結(jié)構(gòu)

2)使用平常的寫法來構(gòu)造一下我們的驗(yàn)證

這里主要分四步在走,相對于使用獨(dú)立驗(yàn)證器或者挨個(gè)數(shù)據(jù)驗(yàn)證已經(jīng)優(yōu)化了大部分的代碼了,但是,當(dāng)在使用中會(huì)發(fā)現(xiàn),我們在多個(gè)驗(yàn)證或者多個(gè)模塊的時(shí)候會(huì)出現(xiàn)重復(fù)性的冗余去寫這一串代碼

問題? 如何將上訴的代碼壓縮成一行呢

AOP: 在不修改源代碼的情況下給程序動(dòng)態(tài)統(tǒng)一添加功能的一種技術(shù)。AOP實(shí)際是GoF設(shè)計(jì)模式的延續(xù),設(shè)計(jì)模式孜孜不倦追求的是調(diào)用者和被調(diào)用者之間的解耦,提高代碼的靈活性和可擴(kuò)展性,AOP可以說也是這種目標(biāo)的一種實(shí)現(xiàn)
AOP、OOP在字面上雖然非常類似,但卻是面向不同領(lǐng)域的兩種設(shè)計(jì)思想。OOP(面向?qū)ο缶幊蹋┽槍I(yè)務(wù)處理過程的實(shí)體及其屬性和行為進(jìn)行抽象封裝,以獲得更加清晰高效的邏輯單元?jiǎng)澐帧?/pre>

我們引入aop編程的思想來解決的我們的問題,通過將功能單一的模塊合并統(tǒng)一起來

我們在common下創(chuàng)建 validate目錄,并且創(chuàng)建一個(gè)BaseValidate文件,繼承 thinkvalidate

BaseValidate.php

    param();
            }

            # 進(jìn)行驗(yàn)證
            if( !$this->check($data) ) {
                (new Base())->ajaxjson(Base::error, $this->getError()); # 拋出的自定義異常
            }

            return true;
        }
        

優(yōu)化后代碼

瞬間舒服了很多吧,省去了非常多的代碼了算是,因?yàn)檫@個(gè)東西在很多控制器下都是應(yīng)該需要進(jìn)行使用的

優(yōu)化2

如baseValidate中的代碼,其中有一串代碼是is_null,那是為了校驗(yàn)所有傳遞上來的數(shù)據(jù)而編寫,當(dāng)我們需要校驗(yàn)所有的數(shù)據(jù)的時(shí)候只需要這樣寫

同樣可以校驗(yàn)出數(shù)據(jù),但是會(huì)有一個(gè)疑惑,我們沒有來獲取data數(shù)據(jù),無法使用data數(shù)據(jù),還是需要在控制器中重新進(jìn)行獲取,這是不可取的,所以我選擇這樣做


文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/31095.html

相關(guān)文章

  • Hello Spring-AOP

    摘要:簡介什么是面向切面編程,是對傳統(tǒng)的面向?qū)ο缶幊痰难a(bǔ)充。通知有五種通知,執(zhí)行前,執(zhí)行后,執(zhí)行成功后,執(zhí)行拋出異常后,環(huán)繞通知。連接點(diǎn)連接點(diǎn)是一個(gè)應(yīng)用執(zhí)行過程中能夠插入一個(gè)切面的點(diǎn)。 OOP(Object Oriented Programming)面向?qū)ο缶幊探鉀Q了縱向上的層次分割,例如MVC模式將展示層、持久化層、邏輯處理層一一分開了,使得開發(fā)效率得到了較大提高,但是這只是縱向上的分割,...

    Kahn 評論0 收藏0
  • Hello Spring-AOP

    摘要:簡介什么是面向切面編程,是對傳統(tǒng)的面向?qū)ο缶幊痰难a(bǔ)充。通知有五種通知,執(zhí)行前,執(zhí)行后,執(zhí)行成功后,執(zhí)行拋出異常后,環(huán)繞通知。連接點(diǎn)連接點(diǎn)是一個(gè)應(yīng)用執(zhí)行過程中能夠插入一個(gè)切面的點(diǎn)。 OOP(Object Oriented Programming)面向?qū)ο缶幊探鉀Q了縱向上的層次分割,例如MVC模式將展示層、持久化層、邏輯處理層一一分開了,使得開發(fā)效率得到了較大提高,但是這只是縱向上的分割,...

    jaysun 評論0 收藏0
  • SSM

    摘要:核心控制器前端控制器預(yù)處理控制器負(fù)責(zé)接收頁面請求和返回?cái)?shù)據(jù)給頁面。使用面向切面編程管理事物日志權(quán)限等。數(shù)據(jù)庫,持久化如何快速學(xué)習(xí)框架的回答知乎其他鏈接 RESTful API 網(wǎng)站即軟件 URI不包含動(dòng)詞 請求方法對應(yīng) CRUDGET ---SELECT,從服務(wù)器取出資源 POST --- CREATE,在服務(wù)器新建一個(gè)資源 PUT --- UPDATE,在服務(wù)器更新資源(客戶端提供...

    Pandaaa 評論0 收藏0
  • 造個(gè)輪子,我學(xué)到了什么

    摘要:閱讀原文造個(gè)輪子我學(xué)到了什么聽說的最多的是不是不要重復(fù)的造輪子不要被這句話蒙騙了,這句話應(yīng)該還沒說完整,在什么情況下不要造輪子實(shí)際項(xiàng)目中由于工期和質(zhì)量原因,肯定不希望你造輪子,你造輪子花費(fèi)時(shí)間且質(zhì)量不如現(xiàn)有的輪子。 閱讀原文:造個(gè)輪子,我學(xué)到了什么 聽說的最多的是不是不要重復(fù)的造輪子?不要被這句話蒙騙了,這句話應(yīng)該還沒說完整,在什么情況下不要造輪子?實(shí)際項(xiàng)目中由于工期和質(zhì)量原因,肯定不...

    Acceml 評論0 收藏0

發(fā)表評論

0條評論

最新活動(dòng)
閱讀需要支付1元查看
<