Laravel 13.12.0 업데이트
릴리스: 2026년 5월 27일
평가: 2026년 8월 28일
13.12.0은 마이너 릴리스로 다수의 버그 수정과 소규모 기능 추가(예: Str::studly/pascal의 normalize 옵션, Scheduler 속성, SQLite URI 연결 지원)를 포함합니다. 문서화된 공개 API를 깨뜨리는 변경은 발견되지 않았으며, 대부분 옵트인 기능이거나 특정 엣지 케이스 버그 수정이라 즉각적인 대응은 필요하지 않습니다.
패키지 관리자가 확인할 것
- Scout위험도 낮음
이번 릴리스 노트에는 Scout에 대한 직접적인 변경 사항이 언급되지 않았습니다. 로컬 파일시스템 경로 구분자 인코딩 수정(#60194, #60230)이 파일 기반 스토리지를 사용하는 경우 간접적으로 영향을 줄 수 있는지 확인 권장합니다.
대응 체크리스트
- 로컬 디스크 경로/URL 사용처 점검선택
LocalFilesystemAdapter의 경로 구분자 인코딩 버그 수정(PR #60194) 및 temporaryUrl 경로 인코딩 수정(PR #60230)이 적용되었습니다. Windows 환경이거나 파일명에 특수 경로 구분자를 사용하는 경우 파일 URL/경로 생성 결과가 달라질 수 있으니 스토리지 관련 테스트를 재확인하세요.
- SQLite 연결 문자열 사용 시 확인선택
PR #60261로 SQLite에 file: 접두사를 사용한 URI 기반 연결이 지원되고, PR #60266에서 base_path() 호출이 standalone 환경을 위해 가드 처리되었습니다. SQLite를 standalone(비Laravel 애플리케이션 컨텍스트)로 사용하는 경우 관련 동작을 확인하세요.
- 큐 워커 재시작 옵션 확인선택
PR #60201로 연결 손실 시 워커 재시작을 옵트아웃할 수 있는 옵션이 추가되었습니다. 큐 워커 안정성 이슈가 있었다면 새 옵션 검토를 권장합니다.
자동 생성상세 평가
요약
13.12.0은 라라벨 13.x 브랜치의 정기 마이너 릴리스로, 버그 수정과 소규모 개선 사항 위주입니다. 보안 이슈나 공개 API를 깨뜨리는 변경 사항은 릴리스 노트에서 확인되지 않았습니다.
주요 변경
- 큐 워커가 연결 손실 시 재시작하지 않도록 옵트아웃하는 옵션 추가 (#60201)
- 로컬 파일시스템의 경로 구분자 인코딩 버그 수정 (#60194, #60230)
Str::studly(),Str::pascal()에normalize매개변수 추가 (#60229)- SQLite에
file:접두사를 사용한 URI 기반 연결 지원 (#60261) View\Factory::flushComponents()가 슬롯 상태를 초기화하지 않던 버그 수정 (#60283)- 관리형 큐가 존재하지 않을 때
ManagedQueueNotFoundException발생 (#60275) ClearCommand,KeyGenerateCommand에 prohibitable 지원 추가 (#60215, #60224)- 자동 탐지되는 이벤트 리스너가 탐지에서 제외될 수 있는 옵션 추가 (#60209)
하위 호환성
릴리스 노트상 문서화된 공개 API를 깨뜨리는 변경은 없습니다. 다만 로컬 디스크 경로 인코딩 수정은 특정 환경(경로 구분자 관련 엣지 케이스)에서 동작 차이를 유발할 수 있어 참고할 필요가 있습니다.
패키지 관리자가 확인할 것
등록된 패키지 목록 중 이번 릴리스와 직접적으로 연관된 항목은 명시적으로 언급되지 않았습니다. 다만 파일/스토리지 관련 기능을 사용하는 패키지(Image 등)는 경로 인코딩 수정 사항을 참고용으로 확인하는 것을 권장합니다. 이 역시 릴리스 노트에 직접적인 언급은 없으므로 참고 수준입니다.
대응 체크리스트
- 로컬 디스크 사용 시 파일 경로/URL 생성 결과 변화 여부 테스트 (옵션)
- SQLite URI 연결(
file:접두사) 필요 여부 검토 (옵션) - 큐 워커 재시작 옵트아웃 옵션 검토 (옵션)
- 특별한 조치 없이 통상적인 마이너 업그레이드 절차만 따르면 충분함
GitHub 릴리스 노트를 근거로 언어 모델 (claude-sonnet-5)이 작성했으며, 사람이 검수하지 않았습니다. 실제 적용 전에는 공식 릴리스 노트와 업그레이드 가이드를 함께 확인하세요.
GitHub 원문 릴리스 노트 보기
- [13.x] Accept Symfony's new control-characters exception message in mailer test by @kieranbrown in https://github.com/laravel/framework/pull/60202
- [13.x] Ability to opt out of worker restart on lost connection by @jackbayliss in https://github.com/laravel/framework/pull/60201
- [13.x] Resolve scheduled event callback parameter by type rather than name by @kayw-geek in https://github.com/laravel/framework/pull/60197
- [13.x] default clear() queue driver param to null by @jackbayliss in https://github.com/laravel/framework/pull/60192
- [13.x] Fix path separator being encoded for LocalFilesystemAdapter by @jackbayliss in https://github.com/laravel/framework/pull/60194
- [13.x] feat: add factory to pivot stub by @ludo237 in https://github.com/laravel/framework/pull/60204
- [13.x] Fix incorrect type hint in Optional::offsetUnset() docblock by @rpsohag in https://github.com/laravel/framework/pull/60207
- [13.x] Make ClearCommand prohibitable by @jackbayliss in https://github.com/laravel/framework/pull/60215
- [13.x] Allow auto discovered listeners to opt out of discovery by @jackbayliss in https://github.com/laravel/framework/pull/60209
- [13.x] Ensure Up/Down commands report exceptions by @jackbayliss in https://github.com/laravel/framework/pull/60232
- [13.x] Fix path separator encoding in temporaryUrl on local disk by @kayw-geek in https://github.com/laravel/framework/pull/60230
- [13.x] Add assertJsonPathsCanonicalizing to TestResponse by @Tresor-Kasenda in https://github.com/laravel/framework/pull/60225
- [13.x] Add
normalizeparameter toStr::studly()andStr::pascal()by @hotmeteor in https://github.com/laravel/framework/pull/60229 - [13.x] Fix async HTTP retries when using array backoff values by @LucasCavalheri in https://github.com/laravel/framework/pull/60214
- [13.x] Replace compact with explicit arrays by @parkourben99 in https://github.com/laravel/framework/pull/60234
- [13.x] Add prohibited to KeyGenerateCommand by @jackbayliss in https://github.com/laravel/framework/pull/60224
- [13.x] remove last
compact()call by @browner12 in https://github.com/laravel/framework/pull/60235 - [13.x] Allow JsonSchema fluent boolean flags to be unset by @LucasCavalheri in https://github.com/laravel/framework/pull/60239
- [13.x] battle harden when scheme is present in the config by @DGarbs51 in https://github.com/laravel/framework/pull/60237
- [13.x] Rector : Always convert
compact()to variables by @lucasmichot in https://github.com/laravel/framework/pull/60236 - [13.x] Add attributes to Scheduler by @cosmastech in https://github.com/laravel/framework/pull/60255
- [13.x] Guard base_path() call in SQLiteConnector for standalone usage by @YoussefMansour9 in https://github.com/laravel/framework/pull/60266
- [13.x] Fix incorrect @return types in Number::spell(), ordinal(), and spellOrdinal() by @AmdadulShakib in https://github.com/laravel/framework/pull/60263
- [13.x] Supports using URI-based connection for SQLite using
file:prefix by @crynobone in https://github.com/laravel/framework/pull/60261 - [13.x] Add
Client\Request::uri()by @stevebauman in https://github.com/laravel/framework/pull/60282 - [13.x] View\Factory::flushComponents() doesn't reset $slots / $slotStack by @martinsoenen in https://github.com/laravel/framework/pull/60283
- [13.x] Throw ManagedQueueNotFoundException when a managed queue is missing by @kieranbrown in https://github.com/laravel/framework/pull/60275