Laravel 9.5 バージョンの新しい追加、修正、変更点をまとめます。

WBOY
リリース: 2022-04-06 15:46:43
転載
2575 人が閲覧しました

この記事は、laravel に関する関連知識を提供します。Laravel チームは、部分的なキューのフォージェリ、freezeTime() 補助関数、ストレージのassertDirectoryEmpty() アサーションなどを含むバージョン 9.5 をリリースしました。助けるために。

Laravel 9.5 バージョンの新しい追加、修正、変更点をまとめます。

[関連する推奨事項: laravel ビデオ ]

Laravel チームがバージョン 9.5 をリリースしました。これには、部分的なキューのフォージェリ、freezeTime () ヘルパーが含まれています関数、ストレージのassertDirectoryEmpty () アサーション、assertJsonPath () のクロージャーなど:

コレクションの Implode メソッドのコールバック サポート

@Lito は、Collect::implode() コールバックのサポートを簡素化するために貢献しました。 ->map()->implode() 呼び出し:

// 之前<br/>{{ $user->cities->map(fn ($city) => $city->name.&#39; (&#39;.$city->state->name.&#39;)&#39;)->implode(&#39;, &#39;) }}<br/>// 使用回调 <br/>{{ $user->cities->implode(fn ($city) => $city->name.&#39; (&#39;.$city->state->name.&#39;)&#39;, &#39;, &#39;) }}<br/>
ログイン後にコピー

Storage Fake を使用して空のディレクトリをアサート

Mark Beech は Storage::fake () を使用して貢献しました。空のディレクトリをアサートします:

// 9.5 版本之前<br/>$this->assertEmpty(Storage::disk(&#39;temp&#39;)->allFiles(&#39;/foo&#39;));<br/>// +9.5<br/>Storage::disk(&#39;temp&#39;)->assertDirectoryEmpty(&#39;/foo&#39;);<br/>
ログイン後にコピー

ディレクトリ内にファイルがなく、他のサブディレクトリのみがある場合、他のフォルダ/ファイルが含まれているため、アサーションは失敗します。プル リクエストのディスカッションの例を次に示します。

Storage::fake(&#39;temp&#39;);<br/>Storage::disk(&#39;temp&#39;)->put(&#39;/foo/bar.txt&#39;, &#39;string&#39;);<br/>Storage::disk(&#39;temp&#39;)->assertDirectoryEmpty(&#39;/&#39;); // 失败<br/>
ログイン後にコピー

JSON アサーション "assertJsonPath ()" がクロージャを受け入れるようになりました

Fabien Villepinte は、後方互換性のある割り込み機能を使用せずに、assertJsonPath にクロージャを渡すことに貢献しました。

上記の例は文字列バージョンを使用することでより単純に見えますが、パス アサーションに関するより複雑なロジックが必要な場合は、クロージャを使用できるようになりました。

部分的なキューのフェイク

Taylor Otwell は、テスト対象のキューへの部分的なフェイクを提供しました:

$response = TestResponse::fromBaseResponse(new Response([<br/>    &#39;data&#39; => [&#39;foo&#39; => &#39;bar&#39;],<br/>]));<br/>$response->assertJsonPath(&#39;data.foo&#39;, &#39;bar&#39;);<br/>$response->assertJsonPath(&#39;data.foo&#39;, fn ($value) => $value === &#39;bar&#39;);<br/>
ログイン後にコピー

「スルー」モデルを作成する新しい方法

Hafez Divandari は、hasOneThrough または hasManyThrough メソッド全体をオーバーライドすることなく、新しい「スルー」モデルを作成する機能に貢献しました。

Queue::fake([JobsToFake::class, /* ... */]);<br/>
ログイン後にコピー

新しい文字列ラップ ヘルパー関数

Markus Hebenstreit は、wrap() 文字列ヘルパー関数を貢献しました。プル リクエストの説明からの使用例を次に示します。

// Define a `newThroughInstance` method<br/>protected function newThroughInstance($resource)<br/>{<br/>    return (new \App\Models\ExampleEntity)->setTable($resource);<br/>}<br/>
ログイン後にコピー

テスト用のフリーズ時間ヘルパー関数

@Italo は、freezeTime() ヘルパー関数を提供しました。これは、テスト時間の現在時刻をフリーズします。テストメソッド:

Str:wrap(&#39;value&#39;)->wrap(&#39;"&#39;);<br/>Str::of(&#39;value&#39;)->wrap(&#39;"&#39;);<br/>str(&#39;value&#39;)->wrap(&#39;"&#39;);<br/>// 输出: "value"<br/>Str:wrap(&#39;is&#39;, &#39;This &#39;, &#39; me!&#39;);<br/>Str::of(&#39;is&#39;)->wrap(&#39;This &#39;, &#39; me!&#39;);<br/>str(&#39;is&#39;)->wrap(&#39;This &#39;, &#39; me!&#39;);<br/>// 输出: This is me!<br/>
ログイン後にコピー

freezeTime() メソッドは、次の糖衣構文です:

public function test_something()<br/>{<br/>    $this->freezeTime();<br/>    // 或将时间设置为日期的当前秒<br/>    // 没有亚秒级精度。<br/>    $this->freezeSecond();<br/>}<br/>
ログイン後にコピー

Http::beforeSending () で呼び出し可能なオブジェクトを受け入れられるようにします

Dries Vints ヘルプHttp::beforeSending() メソッドで呼び出し可能なクラスだけでなく、呼び出し可能なオブジェクトを受け入れるため。次の例は、「配列上のメンバー関数 __invoke() の呼び出し」を取得する代わりに機能するようになります:

$this->travelTo(Carbon::now());<br/>
ログイン後にコピー
リリース ノート

新機能と更新の完全なリストは以下で確認できます。 GitHub で 9.4.0 と 9.5.0 の違いを確認してください。次のリリース ノートは、変更ログから直接抜粋したものです:

9.5.0 バージョン

New

  • ##追加 implode コレクション メソッドのコールバック サポートを追加しました。 (

    #41405)

  • Illuminate/Filesystem/FilesystemAdapter::assertDirectoryEmpty() を追加しました。 (

    #41398)

  • SesTransport の電子メール「メタデータ」を実装します。 (

    #41422)

  • assertPath () がクロージャを受け入れるようにします。 (

    #41409)

  • コレクションのoperatorForWhereの呼び出し可能サポートを追加しました。 (

    #41414, #41424)

  • キューの偽造を追加しました。 (

    #41425)

  • schedule:test コマンドに –name オプションを追加しました。 (#41439)

  • は、Illuminate/Database/Eloquent/Concerns/HasRelationships::newEveryoneThroughInstance() を定義します。 (#41444)

  • Illuminate/Support/Stringable::wrap() を追加しました (#41455)

  • テスト用補助関数「freezeTime」を追加しました。 (#41460)

  • Illuminate/Http/Client/PendingRequest.php::runBeforeSendingCallbacks() で beforeSending 呼び出しの使用を許可します。 (#41489)

修正

  • 非推奨の警告から名前またはドメインをフィルターする際の修正ルート:リストの場合。 (#41421)

  • URL が空のステータス コードを返した場合の HTTP::pool 応答を修正しました。 (#41412)

  • Illuminate/Session/Middleware/AuthenticateSession.php のリコール名の解決を修正しました。 (#41429)

  • /Illuminate/Session/Middleware/AuthenticateSession.php で使用されているガード インスタンスを修正しました (#41447 )

  • ##Route::view () と Route::redirect () を非表示にするための、route:list –excel-vendor を修正しました (

    #41465)

変更

  • \Illuminate\Database\Eloquent\Factories\Factory に接続プロパティの空のタイプを追加します。 (

    #41418)

  • #GeneratorCommand の予約名を更新 (
  • #41441

    )

    # #再設計PHPのartisanのschedule:listコマンド。 (
  • #41445
  • )

    拡張された雄弁な高次プロキシ プロパティ。 (
  • #41449
  • )

    名前付きパラメータを動的ローカル スコープに渡すことができます。 (
  • #41478
  • )

    タグが合格しても、Illuminate/Encryption/Encrypter.php でサポートされていない場合は例外をスローします。 (
  • #41479
  • )

    コンポーザーベンダーフォルダーがプロジェクトフォルダーにない場合、Update PackageManifest::$vendorPath がそのケースに合わせて初期化されます。 (
  • #41463
  • )

    [関連する推奨事項:
  • laravel ビデオチュートリアル
]

以上がLaravel 9.5 バージョンの新しい追加、修正、変更点をまとめます。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:learnku.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート