버전 4.0.5

릴리즈 날짜: 2021년 1월 31일

CodeIgniter4의 4.0.5 릴리즈

개선 사항

  • 컨트롤러를 기반으로 절대 URL을 생성하는 새로운 URL 헬퍼 함수 url_to()가 추가되었습니다.

  • 새로운 Model 옵션: $useAutoIncrementfalse로 설정되면 테이블의 각 레코드에 직접 기본 키를 제공할 수 있습니다. 1:1 관계를 구현하거나 모델에 UUID를 사용할 때 유용합니다.

  • 현재 URL이 주어진 문자열과 일치하는지 확인할 수 있는 새로운 URL 헬퍼 함수 url_is()가 추가되었습니다.

  • Services의 설정 파라미터에 이제 엄격한 타입 힌트가 적용됩니다. 이를 통해 다른 설정 인스턴스가 전달되지 않도록 보장합니다. 추가 속성이 있는 새로운 설정을 전달해야 하는 경우 해당 설정을 확장해야 합니다.

  • Session 및 CSRF 쿠키에 SameSite 속성을 설정하는 지원이 추가되었습니다. 보안 및 최신 브라우저 버전과의 호환성을 위해 기본 설정은 Lax입니다.

  • Config\Mimes::guessExtensionFromType()에서 MIME 타입으로 파일 확장자를 추측할 때, 이제 확장자가 제안되지 않은 경우에만(즉, 일반적으로 업로드된 파일이 아닌 경우) $mimes 배열을 역방향으로 검색합니다.

  • 업로드된 파일의 확장자 getter 함수에 이제 다른 폴백 값이 적용됩니다 (UploadedFile::getExtension()에 대해 UploadedFile::getClientExtension()이, UploadedFile::guessExtension()에 대해 ''이 사용됩니다). 이는 보안 수정으로 클라이언트에 대한 의존성을 줄입니다.

  • Cache FileHandler가 이제 Config\Cache를 통해 파일 권한 모드를 설정할 수 있습니다.

변경 사항

  • system/Language/en/에 정의된 시스템 메시지는 이제 프레임워크 내부 용도로만 사용되며 하위 호환성(BC) 보장 대상이 아닙니다. 사용자가 애플리케이션에서 이 메시지를 사용할 수 있지만 이는 사용자의 책임입니다.

사용 중단

  • BaseCommand::getPad()BaseCommand::setPad()로 대체되어 사용 중단되었습니다.

  • CodeIgniter\Controller::loadHelpers()helper() 함수로 대체되어 사용 중단되었습니다.

  • Config\Format::getFormatter()CodeIgniter\Format\Format::getFormatter()로 대체되어 사용 중단되었습니다.

  • CodeIgniter\Security\Security::CSRFVerify()CodeIgniter\Security\Security::verify()로 대체되어 사용 중단되었습니다.

  • CodeIgniter\Security\Security::getCSRFHash()CodeIgniter\Security\Security::getHash()로 대체되어 사용 중단되었습니다.

  • CodeIgniter\Security\Security::getCSRTokenName()CodeIgniter\Security\Security::getTokenName()로 대체되어 사용 중단되었습니다.

  • Config\App::$CSRFTokenNameConfig\Security::$tokenName으로 대체되어 사용 중단되었습니다.

  • Config\App::$CSRFHeaderNameConfig\Security::$headerName으로 대체되어 사용 중단되었습니다.

  • Config\App::$CSRFCookieNameConfig\Security::$cookieName으로 대체되어 사용 중단되었습니다.

  • Config\App::$CSRFExpireConfig\Security::$expire로 대체되어 사용 중단되었습니다.

  • Config\App::$CSRFRegenerateConfig\Security::$regenerate로 대체되어 사용 중단되었습니다.

  • Config\App::$CSRFRedirectConfig\Security::$redirect로 대체되어 사용 중단되었습니다.

  • Config\App::$CSRFSameSiteConfig\Security::$samesite로 대체되어 사용 중단되었습니다.

  • migrate:create 명령이 make:migration 명령으로 대체되어 사용 중단되었습니다.

  • CodeIgniter\Database\ModelFactoryCodeIgniter\Config\Factories::models()로 대체되어 사용 중단되었습니다.

  • CodeIgniter\Config\ConfigCodeIgniter\Config\Factories::config()로 대체되어 사용 중단되었습니다.

  • CodeIgniter\HTTP\Message::getHeader()가 PSR-7 준비를 위해 header()로 대체되어 사용 중단되었습니다.

  • CodeIgniter\HTTP\Message::getHeaders()가 PSR-7 준비를 위해 headers()로 대체되어 사용 중단되었습니다.

  • Config\Cache::$storePathConfig\Cache::$file['storePath']로 대체되어 사용 중단되었습니다.

버그 수정

  • 클래스 파라미터 선언이 attributes 배열로의 데이터 전파를 방해하던 Entity 클래스의 버그가 수정되었습니다.

  • 환경 변수 encryption.key의 처리 방식이 변경되었습니다. 이전에는 값에 특수 접두사 hex2bin:이 있는 경우 getenv('encryption.key') 또는 env('encryption.key')와 같은 명시적 함수 호출이 자동으로 변환된 바이너리 문자열을 반환했습니다. 이제는 접두사가 포함된 문자열을 그대로 반환하도록 변경되었습니다. 이 변경은 Windows 플랫폼의 환경 변수에서 바이너리 문자열 처리와의 비호환성 때문입니다. 그러나 Encryption 클래스 설정을 통한 $key 접근은 변경되지 않았으며 여전히 바이너리 문자열을 반환합니다.

  • (app/Config/Services.php의) Config\Services가 이제 서드파티 서비스의 올바른 탐색을 위해 CodeIgniter\Config\BaseService를 확장합니다.

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