下面由Laravel教學專欄給大家介紹《Laravel 8.77發布,這些功能被改進了》,希望對大家有所幫助!
Laravel 團隊發布了8.77 版本,其中改進了屬性轉換/訪問器,請求date() 方法以DateTime 實例訪問數據,MAC 地址驗證,在存儲磁碟上定義自定義臨時URL 的能力,以及v8.x 中的最新更改分支。 【推薦:《laravel影片教學》】
Taylor Otwell 提供了一種定義屬性存取器和修改器的新方法:
// 之前, 两个方法的方式 public function setTitleAttribute($value) { $this->attributes['title'] = strtolower($value); } // 新的方式 protected function title(): Attribute { return new Attribute( set: fn ($value) => strtolower($value), ); }
這裡有一個例子同時有get 和set 的實現:
/** * 获取用户的标题 */ protected function title(): Attribute { return new Attribute( get: fn ($value) => strtoupper($value), set: fn ($value) => strtolower($value), ); }
要了解更多信息,請查看關於此功能的 pull request 以及關於此功能的描述和討論。
@Italo 為請求實例提供了一個date()
方法,使得從請求資料取得日期實例變得非常方便:
// 以前 if ($date = $request->input('when')) { $date = Carbon::parse($datetime); } // 之后 $date = $request->date('when');
Ben Tidy 有助於在Predi的每個連接基礎上使用前綴。以下是Redis設定的pull請求的範例:
'redis' => [ 'client' => env('REDIS_CLIENT', 'predis'), 'default' => [ 'host' => env('REDIS_HOST', '127.0.0.1'), 'password' => env('REDIS_PASSWORD', null), 'port' => env('REDIS_PORT', 6379), 'database' => env('REDIS_DB', 0), 'prefix' => env('REDIS_PREFIX', 'prefix:'), ], 'cache' => [ 'host' => env('REDIS_HOST', '127.0.0.1'), 'password' => env('REDIS_PASSWORD', null), 'port' => env('REDIS_PORT', 6379), 'database' => env('REDIS_CACHE_DB', 1), 'prefix' => env('REDIS_PREFIX', 'prefix2:'), ], ],
Bilal Al-Massry 貢獻了 mac_address
驗證規則, 用於驗證 MAC 位址:
$trans = $this->getIlluminateArrayTranslator(); $v = new Validator($trans, ['mac' => 'foo'], ['mac' => 'mac_address']); $this->assertFalse($v->passes()); $trans = $this->getIlluminateArrayTranslator(); $v = new Validator($trans, ['mac' => '01-23-45-67-89-ab'], ['mac' => 'mac_address']); $this->assertTrue($v->passes()); $trans = $this->getIlluminateArrayTranslator(); $v = new Validator($trans, ['mac' => '01-23-45-67-89-AB'], ['mac' => 'mac_address']); $this->assertTrue($v->passes());
Ash Allen 貢獻了為Storage 閘面定義自訂臨時URL邏輯的能力。以下是拉取請求的幾個範例:
Storage::disk('local') ->buildTemporaryUrlUsing(function ($path, $expiration, $options) { return 'using local'; }); // $url is: 'using local' $url = Storage::temporaryUrl('file.jpg', now()->addMinutes(5));
您可以在github 上看到以下新功能和更新的完整清單以及 8.76.0 and 8.77.0 之間的差異。以下發行說明直接來自 變更日誌:
Illuminate/View/Factory::renderUnless()
(#40077)Illuminate/Filesystem/FilesystemManager::setApplication()
(#40058)原文位址: https://laravel-news.com/laravel-8-77-0
翻譯網址:https://learnku.com/laravel/t/64602
以上是Laravel 8.77發布,這些功能都改進了!的詳細內容。更多資訊請關注PHP中文網其他相關文章!