이 기사는 laravel에 대한 관련 지식을 제공합니다. Laravel 팀은 부분 대기열 위조, FreezeTime() 보조 함수, Storage AssertDirectoryEmpty() 어설션 등을 포함하는 버전 9.5를 출시했습니다. 모든 사람에게 도움이 되기를 바랍니다.
【관련 권장 사항: laravel video】
Laravel 팀은 부분 큐 위조, FreezeTime() 도우미 기능, 저장 AssertDirectoryEmpty() 어설션, AssertJsonPath()의 클로저 등을 포함하는 버전 9.5를 출시했습니다.:
@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() 인스턴스를 사용하여 빈 디렉터리를 어설션하는 기능을 제공했습니다.
// 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/>
Fabien Villepinte는 이전 버전과 호환되는 중단 없이 클로저를 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는 새로운 " through" 모델 기능:
// Define a `newThroughInstance` method<br/>protected function newThroughInstance($resource)<br/>{<br/> return (new \App\Models\ExampleEntity)->setTable($resource);<br/>}<br/>
Markus Hebenstreit이 Wrap() 문자열 도우미 기능에 기여했습니다. 다음은 풀 요청 설명의 사용 예입니다.
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/>
@Italo는 테스트에서 현재 시간을 고정하는 테스트 메서드인 FreezeTime() 도우미 기능을 제공했습니다.
public function test_something()<br/>{<br/> $this->freezeTime();<br/> // 或将时间设置为日期的当前秒<br/> // 没有亚秒级精度。<br/> $this->freezeSecond();<br/>}<br/>
FreezeTime( ) 메서드는 다음에 대한 구문 설탕입니다.
$this->travelTo(Carbon::now());<br/>
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과 9.5.0의 차이점 다음 릴리스 노트는 변경 로그에서 직접 가져온 것입니다.
버전 9.5.0
New
에는 implode 수집 방법에 대한 콜백 지원이 추가되었습니다. (#41405)
Illuminate/Filesystem/FilesystemAdapter::assertDirectoryEmpty()를 추가했습니다. (#41398)
SesTransport에 대한 이메일 "메타데이터"를 구현합니다. (#41422)
ertPath()가 클로저를 허용하도록 만드세요. (#41409)
컬렉션의 OperatorForWhere에 대한 호출 가능 지원을 추가했습니다. (#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)
FIX
이름이나 도메인을 필터링할 때 Route:list의 지원 중단 경고를 수정했습니다. (#41421)
URL이 빈 상태 코드를 반환할 때 HTTP::pool 응답을 수정했습니다. (#41412)
Illuminate/Session/Middleware/AuthenticateSession.php에서 리콜러 이름 확인을 수정했습니다. (#41429)
/Illuminate/Session/Middleware/AuthenticateSession.php에서 가드 인스턴스가 사용되는 문제를 수정했습니다. (#41447)
고정 경로:list –제외 공급업체, 숨겨진 경로에서 변경됨 사용 ::view () & Route::redirect () (#41465)
IlluminateDatabaseEloquentFactoriesFactory의 연결 속성에 빈 유형을 추가하세요. (#41418)
GeneratorCommand에서 예약된 이름을 업데이트했습니다. (#41441)
다시 디자인된 php artisan Schedule:list 명령. (#41445)
확장된 뛰어난 고차 프록시 속성입니다. (#41449)
명명된 매개변수를 동적 로컬 범위에 전달하는 것을 허용합니다. (#41478)
태그가 통과했지만 Illuminate/Encryption/Encrypter.php에서 지원되지 않는 경우 예외를 발생시킵니다. (#41479)
Composer Vendor 폴더가 프로젝트 폴더에 없는 경우 Update PackageManifest::$vendorPath가 초기화됩니다. (#41463)
[관련 추천: laravel 비디오 튜토리얼]
위 내용은 Laravel 9.5 버전의 새로운 추가사항, 수정사항, 변경사항을 요약해 보세요!의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!