버전 4.0.5
릴리즈 날짜: 2021년 1월 31일
CodeIgniter4의 4.0.5 릴리즈
개선 사항
컨트롤러를 기반으로 절대 URL을 생성하는 새로운 URL 헬퍼 함수
url_to()가 추가되었습니다.새로운 Model 옵션:
$useAutoIncrement가false로 설정되면 테이블의 각 레코드에 직접 기본 키를 제공할 수 있습니다. 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::$CSRFTokenName이Config\Security::$tokenName으로 대체되어 사용 중단되었습니다.Config\App::$CSRFHeaderName이Config\Security::$headerName으로 대체되어 사용 중단되었습니다.Config\App::$CSRFCookieName이Config\Security::$cookieName으로 대체되어 사용 중단되었습니다.Config\App::$CSRFExpire가Config\Security::$expire로 대체되어 사용 중단되었습니다.Config\App::$CSRFRegenerate가Config\Security::$regenerate로 대체되어 사용 중단되었습니다.Config\App::$CSRFRedirect가Config\Security::$redirect로 대체되어 사용 중단되었습니다.Config\App::$CSRFSameSite가Config\Security::$samesite로 대체되어 사용 중단되었습니다.migrate:create명령이make:migration명령으로 대체되어 사용 중단되었습니다.CodeIgniter\Database\ModelFactory가CodeIgniter\Config\Factories::models()로 대체되어 사용 중단되었습니다.CodeIgniter\Config\Config가CodeIgniter\Config\Factories::config()로 대체되어 사용 중단되었습니다.CodeIgniter\HTTP\Message::getHeader()가 PSR-7 준비를 위해header()로 대체되어 사용 중단되었습니다.CodeIgniter\HTTP\Message::getHeaders()가 PSR-7 준비를 위해headers()로 대체되어 사용 중단되었습니다.Config\Cache::$storePath가Config\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을 참조하십시오.