ホームページ >PHPフレームワーク >Laravel >Laravel 8.77 がリリースされ、これらの機能が改善されました。

Laravel 8.77 がリリースされ、これらの機能が改善されました。

藏色散人
藏色散人転載
2022-01-20 16:59:502249ブラウズ

Laravelの次のチュートリアルコラムでは「Laravel 8.77がリリースされ、こんな機能が改善されました」をご紹介しますので、皆様のお役に立てれば幸いです。

Laravel チームは、プロパティ変換/アクセサーを改善し、DateTime インスタンスとしてデータにアクセスするための date() メソッドのリクエスト、MAC アドレス検証、ストレージ ディスク上のカスタム一時 URL を定義する機能を備えたバージョン 8.77 をリリースしました。 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),
    );
}
詳細については、この機能に関するプル リクエストと、この機能の説明とディスカッションを参照してください。

日時解析がリクエスト インスタンスに追加されました

@Italo はリクエスト インスタンスに

date() メソッドを提供し、日付インスタンスの取得を非常に簡単にします。リクエストデータから 利便性:

// 以前
if ($date = $request->input('when')) {
    $date = Carbon::parse($datetime);
}
// 之后
$date = $request->date('when');
接続ごとのプレフィックス

Ben Tidy は、Predi で接続ごとにプレフィックスを使用するのに役立ちます。以下は、Redis 構成のプル リクエストの例です:

'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 アドレスを検証するための

mac_address 検証ルールを提供しました。 :

$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 は、ストレージ ファサードのカスタム一時 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 と 8.77.0 の違いも参照できます。次のリリース ノートは、変更ログから直接抜粋したものです:

v8.77.0

New

    プロパティ変換/アクセサーの改善 (#40022)
  • 追加
  • Illuminate/View/Factory::renderUnless() (#40077)
  • 日時解析をリクエスト インスタンスに追加 (#39945)
  • 各接続を作成するPredis でプレフィックスを使用できるようになりました (#40083)
  • MAC アドレスを検証するルールを追加しました (#40098)
  • ストレージ用の一時 URL を定義する機能を追加しました (#40100)
修正済み

    Redisドライバーのキーを参照してキャッシュから値を削除するときに発生する可能性のあるメモリ不足エラーを修正しました (#40039)
  • 新規
  • Illuminate/Filesystem/FilesystemManager::setApplication() (#40058)
  • doesntContain() メソッドで渡すパラメータを修正 (739d847)
  • 列挙型ルール メッセージの翻訳 (#40089)
  • 日付の検証を修正 (#40088)
  • PruneCommand.php 以外でのモデルの使用を許可しません (f62fe66)
Changed

    Eloquent\Query::explain メソッド経由で Query\Builder:explain のデータベース Explain コマンド固有の機能を使用する (#40075)

元のアドレス: https ://laravel-news.com/laravel-8-77-0

翻訳アドレス: https://learnku.com/laravel/t/64602

以上がLaravel 8.77 がリリースされ、これらの機能が改善されました。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はlearnku.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。