Laravel 8.77發布,這些功能被改進了!

下面由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:'),     ], ],

MAC 地址驗證規則

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());

定義存儲的臨時 URL 方法

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?之間的差異。 以下發行說明直接來自?變更日志:

v8.77.0

新增

  • 屬性轉換 / 訪問器改進 (#40022)
  • 新增?Illuminate/View/Factory::renderUnless()?(#40077)
  • 向 Request 實例添加日期時間解析 (#39945)
  • 使每個連接都可以在 Predis 上使用前綴 (#40083)
  • 添加了驗證 MAC 地址的規則 (#40098)
  • 添加了為存儲定義臨時 URL 的功能 (#40100)

已修復

  • 修復 Redis 驅動程序中通過引用 key 從緩存中刪除 values 時可能出現的內存不足錯誤 (#40039)
  • 新增?Illuminate/Filesystem/FilesystemManager::setApplication()?(#40058)
  • 修復在 doesntContain() 方法的參數傳遞 (739d847)
  • 翻譯 Enum 規則消息 (#40089)
  • 修復關于日期的驗證 (#40088)
  • 在 PruneCommand.php 中不允許 models 和 except ?一起使用 (f62fe66)

已更改

  • 通過 EloquentQuery::explain 方法對 QueryBuilder:explain 使用特定于數據庫解釋命令的功能 ?(#40075)

原文地址:https://laravel-news.com/laravel-8-77-0

譯文地址:https://learnku.com/laravel/t/64602

? 版權聲明
THE END
喜歡就支持一下吧
點贊15 分享