Laravel 13.8.0 업데이트
릴리스: 2026년 5월 6일
평가: 2026년 8월 28일
이번 13.8.0은 대부분 버그 수정, PHPDoc/타입 정확도 개선, 그리고 몇 가지 소규모 신규 기능(큐 워커 일시정지 이벤트, schedule:list 환경 필터, 큐 검사 메서드 추가 등)으로 구성된 통상적인 마이너 릴리스입니다. 공개 API의 동작을 깨뜨리는 변경은 명시되어 있지 않으며, 대부분의 애플리케이션은 별도 대응 없이 업그레이드해도 무방합니다.
패키지 관리자가 확인할 것
- Scout (laravel/scout)위험도 낮음
직접적인 변경 사항은 언급되지 않았으나, 큐 관련 변경(워커 일시정지/재개 이벤트, SQS 커넥터 자격증명 메모이제이션 등)이 Scout의 큐 기반 인덱싱 잡에 간접적으로 영향을 줄 수 있어 큐 워커 동작을 한 번 확인하는 것을 권장합니다.
대응 체크리스트
- 큐 워커 일시정지/재개 이벤트 활용 검토선택
PR #59895에서 Worker Pausing/Resuming 이벤트가 추가되었습니다. 큐 워커 상태를 모니터링하는 로직이 있다면 새 이벤트를 활용할 수 있는지 확인하세요.
- SQS 큐 사용 시 자격증명 관련 변경 확인선택
PR #59754, #59867에서 SQS 커넥터의 named credential provider 지원 및 자격증명 메모이제이션이 추가되었습니다. SQS 큐를 사용 중이라면 관련 동작을 확인하세요.
- 일반 업그레이드 진행선택
composer update laravel/framework 실행 후 테스트 스위트를 돌려 회귀 여부만 확인하면 충분합니다.
자동 생성상세 평가
요약
13.8.0은 버그 수정, PHPDoc/제네릭 타입 정확도 개선, 그리고 소규모 신규 기능(큐 워커 pause/resume 이벤트, schedule:list 환경 필터, 큐 검사 메서드, enum 지원 확대 등)이 중심인 통상적인 마이너 릴리스입니다. 공개 API의 동작을 깨뜨리는 변경은 릴리스 노트에 명시되어 있지 않습니다.
주요 변경
- 큐 워커에 Pausing/Resuming 이벤트 추가 (#59895)
- SQS 큐 커넥터에 named credential provider 지원 및 자격증명 메모이제이션 추가 (#59754, #59867)
schedule:list에 환경 필터 옵션 추가 (#59993)- 큐 페이크(QueueFake)에 enum 지원 및
all*큐 검사 메서드 추가 (#59990, #59997) - 쿼리 빌더에
SortDirectionenum 지원 추가 (#59865) - 다수의 PHPDoc/제네릭 타입 정정 (동작 변경 아님, 정적 분석 정확도 개선)
- 각종 버그 수정: DatabaseLock 만료 락 처리, 속성 기반 미들웨어 병합, rate limiter TTL, mail 기본 드라이버 enum 허용 등
하위 호환성
릴리스 노트 상 공개 API의 동작을 깨뜨리는 항목은 없습니다. PHPDoc/타입 수정들은 정적 분석(PHPStan 등) 결과에는 영향을 줄 수 있으나 런타임 동작 변경은 아닙니다.
패키지 관리자가 확인할 것
- laravel/scout: 직접적인 변경 언급은 없으나, 큐 관련 변경사항(워커 pause/resume, SQS 자격증명 처리)이 Scout의 비동기 인덱싱 큐 잡에 영향을 줄 수 있어 확인 권장.
- 그 외 등록된 패키지(Http, Inertia Laravel, Socialite 계열, Image, Semver 등)에 대해서는 릴리스 노트에서 직접적인 관련 변경이 발견되지 않았습니다.
대응 체크리스트
-
composer update laravel/framework로 업그레이드 후 테스트 스위트 실행 - SQS 큐를 사용 중이라면 자격증명 처리 변경 사항 검토
- 큐 워커 모니터링 로직이 있다면 새 Pausing/Resuming 이벤트 활용 검토 (선택 사항)
- 그 외 필수 대응 사항 없음
GitHub 릴리스 노트를 근거로 언어 모델 (claude-sonnet-5)이 작성했으며, 사람이 검수하지 않았습니다. 실제 적용 전에는 공식 릴리스 노트와 업그레이드 가이드를 함께 확인하세요.
GitHub 원문 릴리스 노트 보기
- [12.x]
schedule:listdisplay expression in the correct timezone by @xiCO2k in https://github.com/laravel/framework/pull/59307 - [12.x] Fix validation wildcard array message type error by @sadique-cws in https://github.com/laravel/framework/pull/59339
- Preserve class type of mocked classes by @AJenbo in https://github.com/laravel/framework/pull/59353
- Preserve types on partialMock() and spy() by @AJenbo in https://github.com/laravel/framework/pull/59384
- Fix missing UnitEnum support in ModelNotFoundException by @jtheuerkauf in https://github.com/laravel/framework/pull/59423
- [12.x] Fix macros with static closures by @FeBe95 in https://github.com/laravel/framework/pull/59449
- Correct Storage::fake() return type by @AJenbo in https://github.com/laravel/framework/pull/59469
- [12.x] Fix callable type for freezeTime, freezeSecond, and travelTo by @nbayramberdiyev in https://github.com/laravel/framework/pull/59466
- [12.x] Support string abstract in mock/partialMock/spy PHPDoc by @kayw-geek in https://github.com/laravel/framework/pull/59477
- Document thrown exceptions in FilesystemAdapter by @AJenbo in https://github.com/laravel/framework/pull/59534
- Hint \Redis
@mixinon Connection by @AJenbo in https://github.com/laravel/framework/pull/59532 - [12.x] Use PDO subclass polyfill by @jnoordsij in https://github.com/laravel/framework/pull/59640
- [12.x] Fix infinite rate limiter TTL on custom increments by @paulandroshchuk in https://github.com/laravel/framework/pull/59693
- [12.x] Support named credential providers for SQS queue connections by @kieranbrown in https://github.com/laravel/framework/pull/59754
- [12.x] Prevent array to string conversion in signature validation by @alies-dev in https://github.com/laravel/framework/pull/59778
- [12.x] Memoize credentials in SqsConnector by @kieranbrown in https://github.com/laravel/framework/pull/59867
- [12.x] Disable pausing on managed queue workers by @kieranbrown in https://github.com/laravel/framework/pull/59871
- [DRAFT] Verify merging
12.xbranch by @crynobone in https://github.com/laravel/framework/pull/59929 - [13.x] Exclude expired locks in DatabaseLock::isLock by @JurianArie in https://github.com/laravel/framework/pull/59948
- [13.x] Merge attribute-provided middleware with existing middleware by @jnoordsij in https://github.com/laravel/framework/pull/59944
- [13.x] Tighten getCurrentSchemaListing @return in MySQL and SQLite builders by @mosabbirrakib in https://github.com/laravel/framework/pull/59942
- [13.x] Correct Repository::setStore @return to $this by @mosabbirrakib in https://github.com/laravel/framework/pull/59940
- [13.x] Correct Limit::none() @return type to Unlimited by @mosabbirrakib in https://github.com/laravel/framework/pull/59938
- [13.x] Add collation to processColumns and getColumns return shape by @mosabbirrakib in https://github.com/laravel/framework/pull/59937
- [13.x] Mark processViews schema field nullable in @return shape by @mosabbirrakib in https://github.com/laravel/framework/pull/59941
- Improve docblock wording in AurthorizationException by @Talha-74 in https://github.com/laravel/framework/pull/59930
- [13.x] Add Worker Pausing/Resuming events by @jackbayliss in https://github.com/laravel/framework/pull/59895
- [13.x] Allow PHPStan to infer the pivot type when passing the pivot model directly by @axlon in https://github.com/laravel/framework/pull/59959
- [13.x] Document missing $health param on ApplicationBuilder::withRouting by @mosabbirrakib in https://github.com/laravel/framework/pull/59968
- [13.x] Correct Log\Context\Repository::handleUnserializeExceptionsUsing @return to $this by @mosabbirrakib in https://github.com/laravel/framework/pull/59965
- [13.x] Correct Attribute caching toggles @return to $this by @mosabbirrakib in https://github.com/laravel/framework/pull/59962
- [13.x] Correct Factory::configure @return to $this by @mosabbirrakib in https://github.com/laravel/framework/pull/59963
- [13.x] Correct Translator::handleMissingKeysUsing @return to $this by @mosabbirrakib in https://github.com/laravel/framework/pull/59964
- [13.x] Correct Password::min @return to static by @mosabbirrakib in https://github.com/laravel/framework/pull/59967
- [13.x] Mark processIndexes type field nullable in @return shape by @mosabbirrakib in https://github.com/laravel/framework/pull/59961
- Add
assertSessionMissingInputby @jasonmccreary in https://github.com/laravel/framework/pull/59970 - [13.x] Mark generation type field nullable in processColumns @return shape by @mosabbirrakib in https://github.com/laravel/framework/pull/59960
- [13.x] Allow custom on delete/update by @JurianArie in https://github.com/laravel/framework/pull/59986
- Allow mail default driver to accept enums by @Tresor-Kasenda in https://github.com/laravel/framework/pull/59973
- [13.x] LocalScope private recursion by @jackbayliss in https://github.com/laravel/framework/pull/59979
- [13.x] Add an environment filter to the
schedule:listcommand by @m-fi in https://github.com/laravel/framework/pull/59993 - [13.x] Add generic result type to collection min/max methods by @jnoordsij in https://github.com/laravel/framework/pull/59991
- [13.x] Drop 12.x release notes and update heading by @jnoordsij in https://github.com/laravel/framework/pull/59987
- [13.x] Add enum support to QueueFake assertPushedOn method by @riesjart in https://github.com/laravel/framework/pull/59990
- [13.x] Improvements to collection sort docblocks by @jnoordsij in https://github.com/laravel/framework/pull/59988
- [13.x] Add all* queue inspection methods by @jackbayliss in https://github.com/laravel/framework/pull/59997
- [13.x] Add support for
SortDirectionenum to query builder classes by @jnoordsij in https://github.com/laravel/framework/pull/59865