버전 4.1.2

릴리즈 날짜: 2021년 5월 16일

CodeIgniter4의 4.1.2 릴리즈

주요 변경사항

indexPage가 있는 설정에서 반환값에 해당 값이 포함되지 않던 current_url()버그가 수정되었습니다. App::$indexPage를 사용하는 경우 current_url()과 모든 의존 항목(Response Testing, Pager, Form Helper, Pager, View Parser 포함)에서 변경된 값을 기대해야 합니다.

개선 사항

  • 웹 쿠키를 추상화하기 위한 새로운 HTTP 클래스 CookieCookieStore가 추가되었습니다.

  • HTTP 테스트에서 사용 가능한 새로운 assertRedirectTo() 단언이 추가되었습니다.

  • error_log()에 기록하는 새로운 로거 핸들러 ErrorlogHandler가 추가되었습니다.

  • Entity에 사용자 정의 타입 캐스팅 기능이 추가되었습니다.

  • 라우팅에 새로운 옵션이 추가되었습니다. priority 옵션으로 특정 라우트 처리의 우선순위를 낮출 수 있습니다.

  • Autoloader 클래스가 이제 PHP 클래스를 포함하지 않는 파일도 로드할 수 있습니다. 비클래스 파일 목록은 Config\Autoload 클래스의 $files 속성에 나열됩니다.

변경 사항

  • 뷰의 레이아웃이 이제 중첩 섹션을 지원합니다.

  • Response::getCookie가 이제 쿠키 속성 배열 대신 Cookie 인스턴스를 반환합니다.

  • Response::getCookies가 이제 속성 배열의 배열 대신 Cookie 인스턴스 배열을 반환합니다.

  • 최신 브라우저 콘솔의 경고를 제거하기 위해, 쿠키 전송 시 빈 samesite 값이 기본적으로 Lax로 설정됩니다.

  • Model::errors()BaseModel::errors()가 이제 항상 array를 반환합니다. 정의 변경은 없었지만 docblock이 업데이트되었습니다.

  • Entity::castAs의 동작이 변경되었습니다. 새로운 파라미터 $method가 추가되었으며, 타입 캐스팅이 별도 핸들러로 이동되었습니다.

  • Entity의 타임스탬프 캐스팅이 이제 유효하지 않은 값이 전달되면 예외를 발생시킵니다.

  • Entity::castAsJson이 외부 캐스트 핸들러 JsonCast::get을 사용합니다.

  • Entity::mutateDate가 외부 캐스트 핸들러 DatetimeCast::get을 사용합니다.

  • Config\** 클래스가 .env에서 각 속성 값을 가져오려면 이제 클래스 이름으로 속성에 네임스페이스를 지정해야 합니다. 이전에는 속성 이름만으로 충분했지만, PATH와 같은 시스템 환경 변수를 가져올 수 있기 때문에 이제는 허용되지 않습니다.

  • 배열 헬퍼 _array_search_dot이 이제 @internal 용도로 표시되었습니다. 이는 dot_array_search에서 사용되므로 사용자는 코드에서 _array_search_dot을 직접 사용해서는 안 됩니다.

  • CacheInterface::getMetaData()는 캐시 미스 시 null을, 또는 절대 에포크 만료 시간으로 설정된 “expires” 키를 최소한 포함하는 배열을, “만료 없음”의 경우 null을 반환합니다. File, Memcached, Wincache 핸들러는 여전히 false를 반환하며 향후 릴리즈에서 null로 변경될 예정입니다.

사용 중단

  • CodeIgniter\View\View::$currentSection 속성이 사용 중단되었습니다.

  • 잘못된 쿠키 samesite에 대한 언어 문자열과 예외가 CookieException의 자체 예외 메시지로 대체되어 사용 중단되었습니다.

  • CodeIgniterEntityCodeIgniterEntityEntity로 대체되어 사용 중단되었습니다.

  • Cookie 클래스를 사용하기 위해 Response의 쿠키 관련 속성이 사용 중단되었습니다.

  • Cookie 클래스를 사용하기 위해 Security의 쿠키 관련 속성이 사용 중단되었습니다.

  • Cookie 클래스를 사용하기 위해 Session의 쿠키 관련 속성이 사용 중단되었습니다.

  • Cookie의 내부 만료 상태를 사용하기 위해 Security::isExpired()가 사용 중단되었습니다.

  • CIDatabaseTestCaseDatabaseTestTrait로 대체되어 사용 중단되었습니다.

  • FeatureTestCaseFeatureTestTrait로 대체되어 사용 중단되었습니다.

  • ControllerTesterControllerTestTrait로 대체되어 사용 중단되었습니다.

  • ControllerResponseFeatureResponseTestResponse로 통합되어 사용 중단되었습니다.

  • Time::instance()가 사용 중단되었습니다. 대신 Time::createFromInstance()를 사용하십시오(이제 DateTimeInterface를 허용합니다).

  • IncomingRequest::removeRelativeDirectory()가 사용 중단되었습니다. 대신 URI::removeDotSegments()를 사용하십시오.

  • \API\ResponseTrait::failValidationError()가 사용 중단되었습니다. 대신 \API\ResponseTrait::failValidationErrors()를 사용하십시오.

버그 수정

  • BaseConnection::query()가 이제 실패한 쿼리에 대해 false를 반환합니다 (DBDebug==true인 경우 예외가 발생합니다). 또한 문서에 명시된 대로 쓰기 형식 쿼리에 대해 불리언 값을 반환합니다.

수정된 버그의 전체 목록은 저장소의 CHANGELOG_4.1.md을 참조하십시오.