成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

Laravel初學(xué)者必須會(huì)的幾樣?xùn)|西

2023-12-05    分類: 網(wǎng)站建設(shè)

用Laravel也有三四個(gè)月了,雖然是兼職開發(fā),但是使用的頻率非常之高,畢竟是產(chǎn)品化的一個(gè)項(xiàng)目。

在這期間,也踩了無數(shù)的坑,走了很多彎路,所以準(zhǔn)備把最近的感悟記錄下來,方便后來者。

第一階段:簡單的增刪改查

這是最開始接觸Laravel的一個(gè)階段。如果有pHp經(jīng)驗(yàn),那么應(yīng)該能很快找到MVC的路徑,然后駕輕就熟的開始寫起來。雖然還顯得有些笨拙,不過很快就能做出一些內(nèi)容了。如果沒有pHp經(jīng)驗(yàn),還是不建議輕易入坑的。畢竟連語法都不熟悉,很難上手。

Laravel由于支持大量的命令行生成代碼,可能對于thinkpHp或者其他框架的用戶并不太友好,不過當(dāng)你需要?jiǎng)?chuàng)建大量文件的時(shí)候,還是會(huì)覺得很好用的。即使是簡單的增刪改查,也建議多用命令行,比如最好用的php artisan make:model Foo -m,直接創(chuàng)建了model和對應(yīng)的migration。

第二階段:數(shù)據(jù)庫factory和seeder

開發(fā)了比較多的功能之后,會(huì)發(fā)現(xiàn)需要大量的測試數(shù)據(jù),這時(shí)候factory和seeder就該大顯身手了。當(dāng)然這兩個(gè)貨并不怎么好搞定,faker的功能非常之多,factory中創(chuàng)建各種faker,然后在seeder中調(diào)用,學(xué)會(huì)這些,你就又升了一級(jí)。

faker對中文支持也很好,可以生成用戶名,英文名,中文名,中文公司名,中文的企業(yè)口號(hào),大陸電話號(hào)碼等。數(shù)據(jù)填充的文檔faker的文檔

第三階段:表單剝離

最開始表單校驗(yàn)都是直接寫在controller中,如果了解一下request相關(guān)的內(nèi)容,可以將表單驗(yàn)證和數(shù)據(jù)創(chuàng)建更新,都放在單獨(dú)的request類中,php artisan make:request FooForm即可創(chuàng)建一個(gè)表單驗(yàn)證器。我的習(xí)慣是,把新建和更新的驗(yàn)證,都寫在一起,這樣方便對照,以免出錯(cuò)。

表單類支持自動(dòng)驗(yàn)證登錄,自動(dòng)驗(yàn)證規(guī)則,支持很多種規(guī)則還支持自定義規(guī)則(php artisan make:rules balabala),還可以用messages函數(shù),返回自定義錯(cuò)誤信息。表單相關(guān)的文檔

第四階段:自動(dòng)化測試

Laravel從5.5才開始支持瀏覽器自動(dòng)化測試dusk,不過功能直接就登峰造極了,各種assert讓你眼花繚亂,而且易用性也在我用過的各種瀏覽器測試框架中首屈一指。如果沒有接觸過自動(dòng)化測試或者瀏覽器測試,建議先嘗試一下其他框架,python、nodejs也都是有這方面工具的,做http測試和瀏覽器什么的。傳統(tǒng)的人工測試,實(shí)在有點(diǎn)落后了。

dusk最好用的,一個(gè)是支持分頁,也就是把一部分內(nèi)容抽象到單獨(dú)的類里面;還有一個(gè)是有好多內(nèi)置函數(shù),不需要寫一大堆選擇器,比如type輸入可以使用input的名字,press使用button的名字,clickLink使用鏈接的名字,還能自定義高級(jí)選擇器;另一個(gè)是遇到錯(cuò)誤可以自動(dòng)截圖,簡直是神操作,可以直觀看到出錯(cuò)的頁面。測試相關(guān)的文檔(https://d.laravel-china.org/docs/5.5/dusk)

第五階段:設(shè)計(jì)模式

我目前剛達(dá)到這一階段,今天才剛剛理解依賴注入的用法,才開始用上repository模式,之前數(shù)次重構(gòu),都沒有成功。Laravel真正的神奇之處就在這里,你可以在controller之外的地方注入request對象,從而把大量的邏輯都從controller和model中剝離出來。在這之前的一陣子,我一直在用presenter模式,把視圖中涉及到一些邏輯的代碼都提取出來,以便復(fù)用。

項(xiàng)目越來越大之后,MVC已經(jīng)完全不夠用了,controller亂成一團(tuán),model里也有好多邏輯代碼,view里有很多判斷和計(jì)算。這時(shí)候就需要好好設(shè)計(jì)一下骨架了,比如presenter、repository等,service模式還沒用過,后續(xù)可能會(huì)使用吧。Laravel中大型項(xiàng)目架構(gòu)(http://oomusou.io/laravel/laravel-architecture/#presenter)

網(wǎng)站題目:Laravel初學(xué)者必須會(huì)的幾樣?xùn)|西
瀏覽路徑:http://jinyejixie.com/news8/299108.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、外貿(mào)網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站建設(shè)網(wǎng)站內(nèi)鏈、網(wǎng)站策劃、品牌網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)
沾益县| 吉隆县| 湾仔区| 台前县| 柏乡县| 金川县| 建湖县| 万州区| 仲巴县| 大港区| 玉龙| 陈巴尔虎旗| 哈密市| 蛟河市| 静安区| 马尔康县| 敦煌市| 射洪县| 溆浦县| 南平市| 扎兰屯市| 扎兰屯市| 北宁市| 时尚| 江油市| 许昌市| 西藏| 聊城市| 邢台市| 威远县| 沛县| 蓬安县| 沭阳县| 滨州市| 新龙县| 柳河县| 安仁县| 桃园县| 深州市| 万荣县| 喀喇沁旗|