摘要:比較常見的一個(gè)例子是,一個(gè)布爾類型的字段在數(shù)據(jù)庫中的存儲(chǔ)的和,但是在應(yīng)用中需要轉(zhuǎn)換為布爾類型。這個(gè)屬性將被轉(zhuǎn)換為原生的布爾類型提醒查看所有的屬性類型轉(zhuǎn)換請(qǐng)見文檔。討論請(qǐng)前往知識(shí)社區(qū)我最喜歡的三個(gè)功能
昨天,就在 Laracon 線上會(huì)議開始之前, Taylor Otwell 發(fā)布了 Laravel 5.6 。在維也納,我們參與了一個(gè)小型會(huì)議,一起愉悅地觀看了所有演講。在其中一個(gè)演講過程中, Taylor 帶我們?yōu)g覽了 Laravel 的新功能,我將列出其中我最喜歡的三個(gè)。
1. CollisionCollision?是 Nuno Maduro 制作的包,現(xiàn)在已經(jīng)是 Laravel 開發(fā)依賴的一部分。它是一個(gè)針對(duì)命令行應(yīng)用的錯(cuò)誤處理框架,構(gòu)建于 Whoops 包之上。 Whoops 負(fù)責(zé)瀏覽器的錯(cuò)誤處理邏輯,能夠提供一份漂亮的發(fā)生事件概覽。 Collision 完成同樣的任務(wù),只不過針對(duì)的是命令行應(yīng)用。
簡(jiǎn)單的樣例假設(shè)我正在創(chuàng)建一個(gè)新的 Laravel 命令,用于刪除一些舊的備份數(shù)據(jù)?,F(xiàn)在這個(gè)命令的具體用途并不重要,它被命名為 BackupFlush,調(diào)用它的命令信號(hào)為 backupflush:doit 。
doIt(); } }
在命令的處理方法中,調(diào)用了一個(gè)不存在的方法 doIt 。我們將使用這個(gè)語句觸發(fā)一個(gè)錯(cuò)誤。讓我們調(diào)用這個(gè)命令,看看會(huì)發(fā)生什么。
php artisan backupflush:doit
在使用 Collision 之前,輸出的內(nèi)容如下所示。
事實(shí)上,這里的錯(cuò)誤信息已經(jīng)相當(dāng)具有描述性了。難道這還不夠嗎?對(duì)于我們這個(gè)小樣例而言是足夠的,但這是因?yàn)槲覀児室夥胖昧诉@個(gè)錯(cuò)誤,并且知道它的存在。否則,尋找被調(diào)用方法的位置將會(huì)非常困難。因此,這就是 Collision 能夠幫助我們的地方,它將輸出更漂亮的彩色輸出。
響應(yīng)值包含了拋出異常的更多信息,將幫助我們更容易地進(jìn)行調(diào)試。
2. 動(dòng)態(tài)訪問控制在 Laravel 中,你可以限制某些路由的請(qǐng)求頻率。下面是一段文檔中的例子。
Route::middleware("auth:api", "throttle:60,1")->group(function () { Route::get("/user", function () { // }); });
在上面的例子中,用戶對(duì)該分組下的路由每分鐘只能請(qǐng)求 60 次。這個(gè)非常棒的功能是通過 throttle 中間件實(shí)現(xiàn)的。但是,某些情況下這種控制還不夠,特別是你想通過其他的條件來控制頻率的時(shí)候。而這,正是動(dòng)態(tài)訪問控制大展身手的時(shí)候。下面是來自文檔中的另一段示例代碼:
Route::middleware("auth:api", "throttle:rate_limit,1")->group(function () { Route::get("/user", function () { // }); });
同樣的,也使用 throttle 中間件,同時(shí)將頻率設(shè)置為 1。但是,實(shí)際的請(qǐng)求計(jì)數(shù)并不依賴于這里的設(shè)置,而是傳遞一個(gè)屬性名稱。在這個(gè)例子中,rate_limit 是你用戶表的的一個(gè)字段,它被用于計(jì)算最大請(qǐng)求計(jì)數(shù)。這樣,就能實(shí)現(xiàn)針對(duì)不同用戶來設(shè)置不同的請(qǐng)求頻率。例如:你需要為不同訂閱計(jì)劃的用戶分配不同的頻率。
3. Eloquent 日期轉(zhuǎn)換器從 Laravel 5.6 版本開始你可以轉(zhuǎn)換 Eloquent 屬性。比較常見的一個(gè)例子是,一個(gè)布爾類型的字段在數(shù)據(jù)庫中的存儲(chǔ)的 0 和 1,但是在應(yīng)用中需要轉(zhuǎn)換為布爾類型(true or false)。通過在模型中設(shè)置轉(zhuǎn)換器就能實(shí)現(xiàn)這個(gè)功能。
"boolean", ]; }
提醒:?查看所有的屬性類型轉(zhuǎn)換?請(qǐng)見文檔。
現(xiàn)在 Laravel 5.6 也能夠很好的轉(zhuǎn)換日期類型了:
protected $casts = [ "is_admin" => "boolean", "released" => "date:Y", ];
首先將需要被轉(zhuǎn)換的字段定義為屬性名稱。然后定義日期函數(shù)(date 或者 datetime),緊接著,在分號(hào)后面定義日期格式。在我的例子中,我想轉(zhuǎn)為換只顯示年份,所以我的轉(zhuǎn)換器定義是?date:Y。
以前,模型修改器?可以實(shí)現(xiàn)類似的功能,但在以后會(huì)被日期轉(zhuǎn)換器代替。所以,建議你現(xiàn)在就開始使用的方案來實(shí)現(xiàn)這類功能,因?yàn)樗浅5膹?qiáng)大而實(shí)用。
結(jié)語事實(shí)上,與其他版本相比,5.6 版本的版本變化相對(duì)較小。盡管如此,它還是帶來了許多不錯(cuò)的功能,我希望你和我一樣對(duì)這里提到的這三個(gè)功能感到興奮。非常感謝 Taylor 和所有的貢獻(xiàn)者對(duì)工作的支持。可以通過 推特 告訴我你最喜歡的功能。
討論請(qǐng)前往 Laravel 知識(shí)社區(qū): 我最喜歡 Laravel 5.6 的三個(gè)功能
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/28436.html
摘要:大刀闊斧的改造在學(xué)習(xí)了兩遍之后,基于教程開發(fā)的校園二手書交易平臺(tái)熊能本周閱讀清單紙牌屋弗蘭克知道的太晚了實(shí)現(xiàn)微信紅包拆分算法聊聊最近求職發(fā)生的故事無銘更多現(xiàn)代化知識(shí),請(qǐng)前往知識(shí)社區(qū) showImg(https://segmentfault.com/img/bV8ctF?w=1650&h=1100); 最新資訊 Laravel 5.6 中文文檔翻譯完成,譯者 60 人,耗時(shí) 10 天...
摘要:測(cè)試運(yùn)行多次并取平均值。文章數(shù)量測(cè)試的基準(zhǔn)測(cè)試基準(zhǔn)測(cè)試結(jié)果基準(zhǔn)測(cè)試結(jié)果基準(zhǔn)測(cè)試結(jié)果基準(zhǔn)測(cè)試結(jié)果基準(zhǔn)測(cè)試結(jié)果基準(zhǔn)測(cè)試結(jié)果不支持再次成為冠軍請(qǐng)注意的運(yùn)行環(huán)境需要或以上。同時(shí),再次不能正常工作并拋出錯(cuò)誤。 showImg(https://segmentfault.com/img/remote/1460000013690286); 我們每年都會(huì)嘗試深入了解不同版本的 PHP 和 HHVM 在各...
摘要:默認(rèn)的應(yīng)用哈希驅(qū)動(dòng)通過新增的配置文件來控制。你可以在我們的文章中學(xué)習(xí)到更多的關(guān)于密碼哈希算法的內(nèi)容方法在類中引入了兩個(gè)新的生成唯一的方法引入了兩個(gè)新的方法來生成。 showImg(https://segmentfault.com/img/remote/1460000013229904?w=1400&h=708); Laravel 5.6 Laravel 5.6正式成為laravel框架...
摘要:圖片來自的文檔地址文檔頁面總結(jié)文檔翻譯完成,總共耗時(shí)天,參與用戶人。我們翻譯過,這是效率最高的一次。譯者所有的參與的用戶都已添加上譯者身份,感謝這些勤勞的譯者。 showImg(https://segmentfault.com/img/remote/1460000013674606); 圖片來自 laravel-news.com Laravel 5.6 的文檔地址: Laravel 5...
摘要:關(guān)于,它使用起來簡(jiǎn)單且舒適適用于編寫產(chǎn)品代碼,并能極大的推動(dòng)開發(fā)過程。這里有一些在開發(fā)中值得記住的簡(jiǎn)單建議最大限度的使用你的文件不要破壞框架核心,不要編輯文件夾中的文件,你可以選擇繼承相關(guān)函數(shù)來實(shí)現(xiàn)。 showImg(https://segmentfault.com/img/remote/1460000018416776?w=808&h=449); 將任何 PHP 框架稱為最好的框架都...
閱讀 1651·2021-10-12 10:11
閱讀 3767·2021-09-03 10:35
閱讀 1449·2019-08-30 15:55
閱讀 2143·2019-08-30 15:54
閱讀 1006·2019-08-30 13:07
閱讀 1021·2019-08-30 11:09
閱讀 586·2019-08-29 13:21
閱讀 2657·2019-08-29 11:32