Laravel 13.32.0 업데이트
릴리스: 2026년 9월 15일
평가: 2026년 9월 16일
13.32.0은 다수의 버그 수정과 소규모 기능 추가(Mercure 브로드캐스트 드라이버, FilesystemAdapter의 copyToDisk/moveToDisk 등)를 포함하는 통상적인 마이너 릴리스입니다. 공개 API를 깨뜨리는 변경은 없으며, 대부분의 애플리케이션은 별도 대응 없이 업그레이드 가능합니다. 다만 Str::password(), Str::camel(), containsStrict() 등 이전 버전의 버그에 의존했던 코드가 있다면 동작 차이가 생길 수 있습니다.
대응 체크리스트
- Str::password(), Str::camel(), containsStrict() 사용처 점검선택
이번 릴리스에서 Str::password()가 여분의 문자를 반환하던 버그, Str::camel()이 멀티바이트 첫 글자를 소문자화하지 않던 버그, containsStrict()가 null 값에 매칭되는 클로저에서 false를 반환하던 버그가 수정되었습니다(PR #61521, #61545, #61507). 기존 버그 동작에 우연히 의존한 코드가 있는지 테스트로 확인하세요.
- Mercure 브로드캐스트 드라이버 검토(선택)선택
새로운 Mercure 브로드캐스트 드라이버가 추가되었고 broadcasting install 명령으로 설치를 지원합니다(PR #61474, #61587). Broadcasting을 사용하는 경우에만 검토하면 됩니다.
자동 생성상세 평가
요약
13.32.0은 버그 수정 위주의 통상적인 마이너 릴리스입니다. 공개 API를 깨뜨리는 변경 사항은 릴리스 노트에 명시되어 있지 않으며, 즉각적인 대응이 필요한 항목은 없습니다.
주요 변경
- Mercure 브로드캐스트 드라이버 추가 및
broadcasting:install명령 지원 (#61474, #61587) FilesystemAdapter에copyToDisk(),moveToDisk()메서드 추가, 파일시스템 인스턴스도 인자로 허용 (#61511, #61519)- 큐 pause/resume 메서드에 enum 허용 (#61464)
- 다수의 버그 수정:
containsStrict(),Factory::raw(),Str::password(),Str::camel(),collapseWithKeys(),SessionGuard::userFromRecaller(), Redis 태그 캐시 만료 동기화,appendToPriorityList()등
하위 호환성
릴리스 노트에 공개 API를 깨뜨리는 변경으로 명시된 항목은 없습니다. 다만 다음 버그 수정들은 이전의 잘못된 동작에 의존한 코드가 있다면 결과가 달라질 수 있습니다.
Str::password()가 요청한 길이보다 많은 문자를 반환하던 버그 수정Str::camel()이 멀티바이트 첫 글자를 소문자화하지 못하던 버그 수정containsStrict()가 null 값에 매칭되는 클로저에서 false를 반환하던 버그 수정
패키지 관리자가 확인할 것
제공된 등록 패키지 목록 중 이번 릴리스 노트에서 직접 영향을 받는다고 명시된 패키지는 없습니다.
대응 체크리스트
-
Str::password(),Str::camel(),containsStrict()를 사용하는 테스트가 있다면 실행하여 결과 변화 확인 (선택) - Broadcasting을 사용 중이라면 Mercure 드라이버 검토 (선택)
- 그 외 일반적인 마이너 업그레이드 절차(테스트 스위트 실행)만으로 충분함
GitHub 릴리스 노트를 근거로 언어 모델 (claude-sonnet-5)이 작성했으며, 사람이 검수하지 않았습니다. 실제 적용 전에는 공식 릴리스 노트와 업그레이드 가이드를 함께 확인하세요.
GitHub 원문 릴리스 노트 보기
- [12.x] Default memoryExceededExitCode for Cloud by @jackbayliss in https://github.com/laravel/framework/pull/61432
- Wrap the closure return type in
withFreshQueryLog()by @SanderMuller in https://github.com/laravel/framework/pull/61458 - Wrap the autocompleter callback return type in
askWithCompletion()by @SanderMuller in https://github.com/laravel/framework/pull/61487 - [13.x] Allow enums in queue pause/resume methods by @jackbayliss in https://github.com/laravel/framework/pull/61464
- [13.x] Compare lowercased index names in hasIndex by @dwjordan in https://github.com/laravel/framework/pull/61506
- [13.x] Fix containsStrict() returning false when a closure matches a null value by @bunyaminbilenkaratas in https://github.com/laravel/framework/pull/61507
- [13.x] Pass the exception to Eloquent violation callbacks by @jackbayliss in https://github.com/laravel/framework/pull/61504
- [13.x] Change unused variables to named arguments by @imanghafoori1 in https://github.com/laravel/framework/pull/61513
- [13.x] Update SupportBinaryCodecTest by @jackbayliss in https://github.com/laravel/framework/pull/61512
- [13.x] Fix Factory::raw() with a count of zero by @OpadaAlzaiede in https://github.com/laravel/framework/pull/61510
- [13.x] Add missing implementation for
SessionHandlerInterfacefor PHP 9 by @crynobone in https://github.com/laravel/framework/pull/61517 - [13.x] Add copyToDisk & moveToDisk to FilesystemAdapter by @jackbayliss in https://github.com/laravel/framework/pull/61511
- [13.x] Add a Mercure broadcast driver by @dunglas in https://github.com/laravel/framework/pull/61474
- [13.x] Accept filesystem instance in
copyToDisk()andmoveToDisk()methods by @ziadoz in https://github.com/laravel/framework/pull/61519 - [13.x] Fix Str::password() returning extra characters and throwing Va… by @bunyaminbilenkaratas in https://github.com/laravel/framework/pull/61521
- [13.x] Fix Str::camel() not lowercasing multibyte first characters by @rayblair06 in https://github.com/laravel/framework/pull/61545
- [13.x] Fix collapseWithKeys() crashing when the outer collection has string keys by @rayblair06 in https://github.com/laravel/framework/pull/61539
- [13.x] Fix TypeError in SessionGuard::userFromRecaller() when getAuthPassword() is null by @irabbi360 in https://github.com/laravel/framework/pull/61532
- Strengthen mocked tests with the real thing by @jasonmccreary in https://github.com/laravel/framework/pull/61563
- [13.x] Fix appendToPriorityList() when the referenced middleware is the first item by @GabeSilvaDev in https://github.com/laravel/framework/pull/61567
- [13.x] Improve collection return types for methods that mutate by @axlon in https://github.com/laravel/framework/pull/61571
- [13.x] Add
isManagedQueueto CloudManager by @jackbayliss in https://github.com/laravel/framework/pull/61568 - [13.x] Fix Redis tagged cache not syncing tag entry expiration on touch by @Ashot1995 in https://github.com/laravel/framework/pull/61574
- [13.x] Decode job payload once by @jackbayliss in https://github.com/laravel/framework/pull/61526
- [13.x] Fix
sum()return type when the key matches a global function name by @crishoj in https://github.com/laravel/framework/pull/61578 - [13.x] add UnitEnum to Authorizable contract by @hosni in https://github.com/laravel/framework/pull/61589
- [13.x] Add support for installing Mercure via broadcasting install command by @Lea-Bar in https://github.com/laravel/framework/pull/61587
- [13.x] Preserve unchanged values when encrypting readable environment files by @mathiasgrimm in https://github.com/laravel/framework/pull/61503