버전 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 클래스
Cookie와CookieStore가 추가되었습니다.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의 자체 예외 메시지로 대체되어 사용 중단되었습니다.CodeIgniterEntity가 CodeIgniterEntityEntity로 대체되어 사용 중단되었습니다.
Cookie클래스를 사용하기 위해Response의 쿠키 관련 속성이 사용 중단되었습니다.Cookie클래스를 사용하기 위해Security의 쿠키 관련 속성이 사용 중단되었습니다.Cookie클래스를 사용하기 위해Session의 쿠키 관련 속성이 사용 중단되었습니다.Cookie의 내부 만료 상태를 사용하기 위해Security::isExpired()가 사용 중단되었습니다.CIDatabaseTestCase가DatabaseTestTrait로 대체되어 사용 중단되었습니다.FeatureTestCase가FeatureTestTrait로 대체되어 사용 중단되었습니다.ControllerTester가ControllerTestTrait로 대체되어 사용 중단되었습니다.ControllerResponse와FeatureResponse가TestResponse로 통합되어 사용 중단되었습니다.Time::instance()가 사용 중단되었습니다. 대신Time::createFromInstance()를 사용하십시오(이제DateTimeInterface를 허용합니다).IncomingRequest::removeRelativeDirectory()가 사용 중단되었습니다. 대신URI::removeDotSegments()를 사용하십시오.\API\ResponseTrait::failValidationError()가 사용 중단되었습니다. 대신\API\ResponseTrait::failValidationErrors()를 사용하십시오.
버그 수정
BaseConnection::query()가 이제 실패한 쿼리에 대해false를 반환합니다 (DBDebug==true인 경우 예외가 발생합니다). 또한 문서에 명시된 대로 쓰기 형식 쿼리에 대해 불리언 값을 반환합니다.
수정된 버그의 전체 목록은 저장소의 CHANGELOG_4.1.md을 참조하십시오.