버전 4.7.1

릴리스 날짜: 2026년 3월 22일

CodeIgniter4 4.7.1 릴리스

주요 변경사항

  • Database: CodeIgniter\Database\SQLite3\Connection::$busyTimeout의 타입이 이제 ?int로 지정되었습니다. 이 속성을 재선언하는 사용자 정의 서브클래스는 업데이트가 필요합니다.

메시지 변경사항

  • Images.unsupportedImageCreate가 업데이트되었습니다.

  • Validation.valid_cc_num 키가 Validation.valid_cc_number로 이름이 변경되었습니다.

변경사항

이벤트

  • 워커 모드: Events::cleanupForWorkerMode()가 이제 선택적 $resetEventListeners 배열 매개변수를 허용합니다. 이는 Config\WorkerMode의 새 $resetEventListeners 속성에 해당합니다. 이를 통해 사용자는 이벤트 콜백 내에서 리스너가 등록될 때 요청 간에 정리되어야 할 이벤트 이름을 선언할 수 있습니다. 이벤트 리스너 재설정를 참조하세요.

기타

  • builds: builds 스크립트(codeigniter4/appstarter 용)에서 4.7.x를 다음 마이너 버전 4.8.x-dev로 전환하는 next 인자가 추가되었습니다. 최신 개발 버전을 참조하세요.

버그 수정

  • ContentSecurityPolicy: CSP가 비활성화되었을 때 생성된 HTML에서 사용자 정의 CSP 태그가 제거되지 않는 버그가 수정되었습니다. 이제 이 메서드는 생성된 HTML에서 모든 사용자 정의 CSP 태그가 제거되도록 보장합니다.

  • ContentSecurityPolicy: generateNonces()가 이스케이프되지 않은 이중 따옴표로 CSP 논스 플레이스홀더를 대체하여 손상된 JSON 응답을 생성하는 버그가 수정되었습니다. 이제 응답 Content-Type이 JSON일 때 이 메서드가 자동으로 논스 속성을 JSON 이스케이프합니다.

  • ContentSecurityPolicy: getScriptNonce()getStyleNonce()로 생성된 논스가 script-src-elemstyle-src-elem 지시문에 추가되지 않아, 해당 지시문이 있을 때 브라우저가 논스를 자동으로 무시하는 버그가 수정되었습니다.

  • CURLRequest: 이유 구문이 없는 HTTP/2 응답(예: HTTP/2 200)이 올바르게 파싱되지 않아 상태 코드와 프로토콜 버전이 무시되는 버그가 수정되었습니다.

  • Database: BaseConnection::callFunction()이 이미 접두사가 붙은 함수 이름에 접두사를 두 번 붙일 수 있는 버그가 수정되었습니다.

  • Database: BasePreparedQuery::prepare()가 너무 광범위한 명명된 플레이스홀더 치환으로 인해 콜론 구문이 포함된 SQL을 잘못 처리할 수 있는 버그가 수정되었습니다. 이제 ::timestamp같은 PostgreSQL 캐스트 구문이 보존됩니다.

  • Database: 설정 배열(.env 재정의 포함)의 문자열 값이 타입이 지정된 연결 속성에 대해 정규화되지 않아 synchronousbusyTimeout 같은 SQLite3 옵션이 잘못된 타입으로 할당될 수 있는 버그가 수정되었습니다.

  • Model: updateOnlyChangedtrue이고 인덱스 필드 값이 변경되지 않을 때 BaseModel::updateBatch()가 예외를 발생시키는 버그가 수정되었습니다.

  • Model: Model::chunk()가 반복 끝에 불필요한 추가 데이터베이스 쿼리를 실행하는 버그가 수정되었습니다. chunk()는 이제 양수가 아닌 청크 크기로 호출될 때 InvalidArgumentException도 발생시킵니다.

  • Session: savePath가 비어 있지 않을 때 MemcachedHandler 생성자가 잘못 예외를 발생시키는 버그가 수정되었습니다.

  • Testing: FeatureTestTrait::withRoutes()에서 유효하지 않은 HTTP 메서드가 올바르게 유효성 검사되지 않아 모두 RouteCollection에 전달되는 버그가 수정되었습니다.

  • Toolbar: ?debugbar_time=...에서 로드된 독립형 툴바 페이지가 상호작용이 불가능한 버그가 수정되었습니다.

  • Toolbar: Routes 패널에서 마우스를 올렸을 때 첫 번째 라우트 매개변수만 입력 필드로 변환되는 버그가 수정되었습니다.

  • Validation: valid_cc_number 규칙이 이제 올바른 번역을 가집니다.

  • Validation: 와일드카드 필드(예: contacts.friends.*.name) 사용 시 키가 누락된 배열 요소에 대해 규칙이 실행되지 않는 버그가 수정되었습니다.

  • View: appOverridesFolder 설정 속성이 정의되지 않은 경우 View가 오류를 발생시키는 버그가 수정되었습니다.

수정된 버그의 전체 목록은 저장소의 CHANGELOG.md를 참조하세요.