打造 Laravel 優(yōu)美架構(gòu) 談可維護性與彈性設(shè)計

視頻:https://www.youtube.com/watch... (有墻各位懂的)
Laravel簡單架構(gòu):

image.png

簡單的小項目可能會把數(shù)據(jù)庫查詢玻褪,業(yè)務(wù)邏輯阅懦,數(shù)據(jù)傳給View幾乎所有操作都放在Controller,如何項目后期需求變大眶诈,最后Controller會變得很臃腫褂微,難懂,不易維護(同樣嗤堰,有些會把所有增刪改查戴质,功能類寫在Model,Controller再從Model一個個的拿踢匣,導(dǎo)致Model很亂告匠,Model有關(guān)聯(lián)表的時候可能會引起一些不必要的數(shù)據(jù)庫查詢)

我自己的理解:用美宜佳賣商品給客人來理解,主要Controller是某個加盟商美宜佳門店离唬,View是客人后专,Model是商品制造工廠(理解有些粗糙)

Repository(商品倉庫):

跟Eloquent/DB操作相關(guān)的,例如增刪改查输莺,直接和數(shù)據(jù)庫打交道的基礎(chǔ)操作抽出來放在Repository中戚哎,repository中文是倉庫,我的理解就是我們要從Model拿數(shù)據(jù)嫂用,先放在倉庫repository中型凳,統(tǒng)一由倉庫管理分配,發(fā)揮倉庫的職責(zé)


image.png
image.png

Service(總部服務(wù)平臺):

商業(yè)邏輯嘱函,不是簡單的查詢數(shù)據(jù)甘畅,而是特定的任務(wù),例如判斷用戶是否是會員,設(shè)置用戶權(quán)限等等疏唾,這些操作建議放在Service蓄氧,之后Controller再調(diào)用它


image.png

image.png

個人理解:所以在Controller和Model/Eloquent中間墊兩層,如果Repository理解為商品倉庫的話槐脏,我的理解Service是類似總部內(nèi)部的服務(wù)平臺喉童,加盟商Controller需要拿商品給客人View,不能直接去食品工廠Model拿顿天,先通過倉庫repository泄朴,然后總部服務(wù)平臺Service進行打包啊,整理啊露氮,發(fā)車白婊摇(各種任務(wù)),最后再給到加盟商Controller手里

image.png

Presenter(充值業(yè)務(wù)):

一些比較固定畔规,可以單獨調(diào)用的局扶,可以用Presenter抽出來,不需要讓Model去做叁扫,下次修改也單獨修改Presenter就行了三妈,
例如時間戳轉(zhuǎn)成Y-m-d H:i:s格式,可以單獨用Presenter處理后用@inject插入到前端模板莫绣,而不是把轉(zhuǎn)化過程寫在模板上面


image.png

image.png

image.png

個人理解:所以在Controller和View中間可以加一層Presenter畴蒲,我的理解有點類似:美宜佳商戶(Controller)可以給客人(View)充公交卡,這種小事不需要勞費工廠(Model)

image.png

Transformer(快餐小吃人工篩選):

轉(zhuǎn)換器对室,例如在倉庫repository中有一個獲取所有用戶信息的查詢操作:
this->user->all();但有些地方我們不需要用到那么多個字段模燥,我只想有name和email字段,難道我要去改all()里面的參數(shù)掩宜,變成this->user->all(['name','email'])?這樣另外的地方又要全部字段蔫骂,這不就沖突了?這時候Transformer就有用了牺汤,其實原理是對$this->user->all()獲得的數(shù)據(jù)進行篩選后再輸出辽旋,加了個篩選器。

image.png

image.png

image.png

之后要修改結(jié)果字段就直接在transform修改即可檐迟,當(dāng)然還可以額外添加需要的字段:array_set()


image.png

個人理解:這一塊我的理解就是有些客人需要點一些快餐补胚,例如美宜佳里面的車仔面呀,烤腸呀追迟,在賣出商品的時候需要根據(jù)客人的需求對小吃進行篩選再賣出去溶其,不可能客人指點要一個烤腸,你把店里全部小吃拿給他怔匣,讓他自個去篩選握联,中間賣出去的時候需要Transformer進行篩選再給出商品

image.png

Formatter(包裝):

主要用于保持API返回格式的一致(使用方法和transform類似):


image.png

image.png

image.png

個人理解:Formatter這一塊我的理解就是商品包裝,客人買東西每瞒,買小吃金闽,你需要對商品先進行包裝,當(dāng)然這個包裝肯定需要保持一致

image.png

以上便是我再看完視頻后對其進行總結(jié)整理剿骨,當(dāng)然理論的說的容易代芜,實際操作起來還有很多未知的問題,還是需要后面繼續(xù)研究學(xué)習(xí)浓利。

文章原地址https://segmentfault.com/a/1190000016298581

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末挤庇,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子贷掖,更是在濱河造成了極大的恐慌嫡秕,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,590評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件苹威,死亡現(xiàn)場離奇詭異昆咽,居然都是意外死亡,警方通過查閱死者的電腦和手機牙甫,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,157評論 3 399
  • 文/潘曉璐 我一進店門掷酗,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人窟哺,你說我怎么就攤上這事泻轰。” “怎么了且轨?”我有些...
    開封第一講書人閱讀 169,301評論 0 362
  • 文/不壞的土叔 我叫張陵浮声,是天一觀的道長。 經(jīng)常有香客問我旋奢,道長阿蝶,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,078評論 1 300
  • 正文 為了忘掉前任黄绩,我火速辦了婚禮羡洁,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘爽丹。我一直安慰自己筑煮,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 69,082評論 6 398
  • 文/花漫 我一把揭開白布粤蝎。 她就那樣靜靜地躺著真仲,像睡著了一般。 火紅的嫁衣襯著肌膚如雪初澎。 梳的紋絲不亂的頭發(fā)上秸应,一...
    開封第一講書人閱讀 52,682評論 1 312
  • 那天虑凛,我揣著相機與錄音,去河邊找鬼软啼。 笑死桑谍,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的祸挪。 我是一名探鬼主播锣披,決...
    沈念sama閱讀 41,155評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼贿条!你這毒婦竟也來了雹仿?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,098評論 0 277
  • 序言:老撾萬榮一對情侶失蹤整以,失蹤者是張志新(化名)和其女友劉穎胧辽,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體公黑,經(jīng)...
    沈念sama閱讀 46,638評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡票顾,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,701評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了帆调。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片奠骄。...
    茶點故事閱讀 40,852評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖番刊,靈堂內(nèi)的尸體忽然破棺而出含鳞,到底是詐尸還是另有隱情,我是刑警寧澤芹务,帶...
    沈念sama閱讀 36,520評論 5 351
  • 正文 年R本政府宣布蝉绷,位于F島的核電站,受9級特大地震影響枣抱,放射性物質(zhì)發(fā)生泄漏熔吗。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,181評論 3 335
  • 文/蒙蒙 一佳晶、第九天 我趴在偏房一處隱蔽的房頂上張望桅狠。 院中可真熱鬧,春花似錦轿秧、人聲如沸中跌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,674評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽漩符。三九已至,卻和暖如春驱还,著一層夾襖步出監(jiān)牢的瞬間嗜暴,已是汗流浹背凸克。 一陣腳步聲響...
    開封第一講書人閱讀 33,788評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留闷沥,地道東北人萎战。 一個月前我還...
    沈念sama閱讀 49,279評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像狐赡,于是被迫代替她去往敵國和親撞鹉。 傳聞我的和親對象是個殘疾皇子疟丙,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,851評論 2 361

推薦閱讀更多精彩內(nèi)容