国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

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

myshell / 3152人閱讀

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

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

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

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

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

問(wèn)題? 如何將上訴的代碼壓縮成一行呢

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

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

我們?cè)?b>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)所有傳遞上來(lái)的數(shù)據(jù)而編寫(xiě),當(dāng)我們需要校驗(yàn)所有的數(shù)據(jù)的時(shí)候只需要這樣寫(xiě)

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


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

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/31095.html

相關(guān)文章

  • Hello Spring-AOP

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

    Kahn 評(píng)論0 收藏0
  • Hello Spring-AOP

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

    jaysun 評(píng)論0 收藏0
  • SSM

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

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

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

    Acceml 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

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