這篇文章為大家帶來了關於laravel的相關知識,Laravel團隊發布了9.5 版本,其中包括部分隊列偽造,freezeTime()輔助函數,存儲assertDirectoryEmpty()斷言等等,希望對大家有幫助。
【相關推薦:laravel影片】
Laravel 團隊發布了 9.5 版本,其中包括部分隊列偽造,freezeTime ()輔助函數,儲存 assertDirectoryEmpty () 斷言,assertJsonPath () 中的閉包等:
#@Lito 貢獻了在 Collect::implode()回呼支持, 以簡化 ->map()->implode() 調用:
// 之前<br/>{{ $user->cities->map(fn ($city) => $city->name.' ('.$city->state->name.')')->implode(', ') }}<br/>// 使用回调 <br/>{{ $user->cities->implode(fn ($city) => $city->name.' ('.$city->state->name.')', ', ') }}<br/>
Mark Beech 貢獻了使用 Storage::fake (
Mark Beech 貢獻了使用 Storage::fake (
Mark Beech 貢獻了使用 Storage::fake (
Mark Beech 貢獻了使用 Storage)實例斷言空目錄的能力:
// 9.5 版本之前<br/>$this->assertEmpty(Storage::disk('temp')->allFiles('/foo'));<br/>// +9.5<br/>Storage::disk('temp')->assertDirectoryEmpty('/foo');<br/>
Storage::fake('temp');<br/>Storage::disk('temp')->put('/foo/bar.txt', 'string');<br/>Storage::disk('temp')->assertDirectoryEmpty('/'); // 失败<br/>
JSON 斷言 「assertJsonPath ()」 現在接受閉包
$response = TestResponse::fromBaseResponse(new Response([<br/> 'data' => ['foo' => 'bar'],<br/>]));<br/>$response->assertJsonPath('data.foo', 'bar');<br/>$response->assertJsonPath('data.foo', fn ($value) => $value === 'bar');<br/>
雖然上面的範例使用字串版本似乎更簡單,但如果你需要圍繞路徑斷言更複雜的邏輯,你現在可以使用閉包。
Taylor Otwell 為測試中的隊列貢獻了部分偽造:
Queue::fake([JobsToFake::class, /* ... */]);<br/>
Hafez Divandari貢獻了不需要涵蓋整個 hasOneThrough 或 hasManyThrough 方法而創建一個新的 「through」 模型的能力:
// Define a `newThroughInstance` method<br/>protected function newThroughInstance($resource)<br/>{<br/> return (new \App\Models\ExampleEntity)->setTable($resource);<br/>}<br/>
新的字串換行的輔助函數
Str:wrap('value')->wrap('"');<br/>Str::of('value')->wrap('"');<br/>str('value')->wrap('"');<br/>// 输出: "value"<br/>Str:wrap('is', 'This ', ' me!');<br/>Str::of('is')->wrap('This ', ' me!');<br/>str('is')->wrap('This ', ' me!');<br/>// 输出: This is me!<br/>
#用於測試的 Freeze Time 輔助函數
public function test_something()<br/>{<br/> $this->freezeTime();<br/> // 或将时间设置为日期的当前秒<br/> // 没有亚秒级精度。<br/> $this->freezeSecond();<br/>}<br/>
freezeTime() 方法是以下內容的語法糖:
$this->travelTo(Carbon::now());<br/>
允許在 Http::beforeSending () 中接受可呼叫物件Dries Vints 有助於在 Http::beforeSending() 方法中接受可呼叫對象,而不僅僅是可呼叫的類別。現在,以下範例將會起作用,而不是取得 「呼叫數組上的成員函數 __invoke ()」:
Http::baseUrl('https://api.example.org')<br/> ->beforeSending([ $this, 'prepareRequest' ])<br/> ->asJson()<br/> ->withoutVerifying();<br/>
發行說明你可以在下面查看新功能和更新的完整列表以及在 GitHub 上查 9.4.0 和 9.5.0 之間的差異 。以下發行說明直接來自 changelog:
增加了 Illuminate/Filesystem/FilesystemAdapter::assertDirectoryEmpty()。 (#41398
)使 assertPath () 接受閉包。 (#41409)
#41414, #41424
)############增加了部分佇列偽造。 (####41425###)###為 schedule:test 指令新增了 –name 選項。 (#41439)
定義了 Illuminate/Database/Eloquent/Concerns/HasRelationships::newRelatedThroughInstance()。 (#41444)
增加了 Illuminate/Support/Stringable::wrap() (#41455)
為測試增加了 「freezeTime」 輔助函數。 (#41460)
允許在 Illuminate/Http/Client/PendingRequest.php::runBeforeSendingCallbacks() 中使用 beforeSending 呼叫。 (#41489)
修復
修復了在篩選名稱或網域時來自route:list 的棄用警告。 (#41421)
修正了當 URL 傳回空狀態碼時的 HTTP::pool 回應。 (#41412)
修正了 Illuminate/Session/Middleware/AuthenticateSession.php 中的 recaller 名稱解析。 (#41429)
修正了在 /Illuminate/Session/Middleware/AuthenticateSession.php 中被使用的 guard )
以上是歸納Laravel 9.5版本的新增、修復與改變!的詳細內容。更多資訊請關注PHP中文網其他相關文章!