4.0.4에서 4.0.5로 업그레이드
설치 방법에 해당하는 업그레이드 지침을 참조하십시오.
주요 기능 변경사항
Message::getHeader(s)
HTTP 레이어는 PSR-7 준수를 향해 나아가고 있습니다. 이를 위해 Message::getHeader()와 Message::getHeaders()는 사용 중단되었으며, 각각 Message::header()와 Message::headers()로 대체해야 합니다. 이는 Message를 상속하는 모든 클래스인 Request, Response 및 그 하위 클래스에도 적용됩니다.
HTTP 레이어의 추가적인 관련 사용 중단 항목:
Message::isJSON(): “Content-Type” 헤더를 직접 확인하십시오Request[Interface]::isValidIP():valid_ip를 사용하는 Validation 클래스를 사용하십시오Request[Interface]::getMethod():$upper매개변수가 제거될 예정이므로 strtoupper()를 사용하십시오Request[Trait]::$ipAddress: 이 프로퍼티는 private으로 변경될 예정입니다Request::$proxyIPs: 이 프로퍼티는 제거될 예정입니다;config('App')->proxyIPs에 직접 접근하십시오Request::__construct(): 생성자는 더 이상Config\App을 받지 않으며, 전환을 돕기 위해 nullable로 변경되었습니다Response[Interface]::getReason(): 대신getReasonPhrase()를 사용하십시오Response[Interface]::getStatusCode(): 명시적int반환 타입이 제거될 예정입니다 (별도 조치 불필요)
ResponseInterface
이 인터페이스는 프레임워크 호환 응답 클래스에 필요한 메서드를 포함하도록 설계되었습니다. 프레임워크에서 필요로 하는 여러 메서드가 누락되어 있었으나 이제 추가되었습니다. ResponseInterface를 직접 구현하는 클래스가 있다면 업데이트된 요구사항과 호환되어야 합니다. 해당 메서드는 다음과 같습니다:
setLastModified($date)setLink(PagerInterface $pager)setJSON($body, bool $unencoded = false)getJSON()setXML($body)getXML()send()sendHeaders()sendBody()setCookie($name, $value = '', $expire = '', $domain = '', $path = '/', $prefix = '', $secure = false, $httponly = false, $samesite = null)hasCookie(string $name, string $value = null, string $prefix = ''): boolgetCookie(string $name = null, string $prefix = '')deleteCookie(string $name = '', string $domain = '', string $path = '/', string $prefix = '')getCookies()redirect(string $uri, string $method = 'auto', int $code = null)download(string $filename = '', $data = '', bool $setMime = false)
이 인터페이스의 사용을 용이하게 하기 위해 이러한 메서드들은 프레임워크의 Response에서 ResponseTrait으로 이동되었으므로 이를 활용할 수 있으며, DownloadResponse는 이제 최대 호환성을 보장하기 위해 직접 Response를 상속합니다.
Config\Services
서비스 검색이 업데이트되어 서드파티 서비스(모듈을 통해 활성화된 경우)가 코어 서비스보다 우선시될 수 있게 되었습니다. 서드파티 서비스의 올바른 검색을 허용하기 위해 app/Config/Services.php의 클래스가 CodeIgniter\Config\BaseService를 상속하도록 업데이트하십시오.
프로젝트 파일
프로젝트 공간(root, app, public, writable)의 많은 파일이 업데이트되었습니다. 이러한 파일들은 시스템 범위 외부에 있으므로 직접 개입하지 않으면 변경되지 않습니다. 프로젝트 공간의 변경사항 병합을 도와주는 서드파티 CodeIgniter 모듈이 있습니다: Packagist에서 찾아보기.
참고
버그 수정을 위한 매우 드문 경우를 제외하고, 프로젝트 공간 파일에 대한 변경사항은 애플리케이션을 중단시키지 않습니다. 여기에 명시된 모든 변경사항은 다음 주요 버전까지 선택 사항이며, 필수 변경사항은 위 섹션에서 다룹니다.
내용 변경사항
다음 파일들은 중요한 변경(사용 중단 또는 시각적 조정 포함)이 있었으며, 업데이트된 버전을 애플리케이션에 병합하는 것을 권장합니다:
app/Views/*public/index.phppublic/.htaccesssparkphpunit.xml.distcomposer.json
전체 변경사항
다음은 변경이 있었던 프로젝트 공간의 모든 파일 목록입니다; 많은 파일이 런타임에 영향을 미치지 않는 단순한 주석 또는 서식 변경입니다:
LICENSEREADME.mdapp/Config/App.phpapp/Config/Autoload.phpapp/Config/Boot/development.phpapp/Config/Boot/production.phpapp/Config/Boot/testing.phpapp/Config/Cache.phpapp/Config/Constants.phpapp/Config/ContentSecurityPolicy.phpapp/Config/Database.phpapp/Config/DocTypes.phpapp/Config/Email.phpapp/Config/Encryption.phpapp/Config/Events.phpapp/Config/Exceptions.phpapp/Config/Filters.phpapp/Config/ForeignCharacters.phpapp/Config/Format.phpapp/Config/Generators.phpapp/Config/Honeypot.phpapp/Config/Images.phpapp/Config/Kint.phpapp/Config/Logger.phpapp/Config/Migrations.phpapp/Config/Mimes.phpapp/Config/Modules.phpapp/Config/Pager.phpapp/Config/Paths.phpapp/Config/Routes.phpapp/Config/Security.phpapp/Config/Services.phpapp/Config/Toolbar.phpapp/Config/UserAgents.phpapp/Config/Validation.phpapp/Config/View.phpapp/Controllers/BaseController.phpapp/Controllers/Home.phpapp/Views/errors/cli/error_404.phpapp/Views/errors/cli/error_exception.phpapp/Views/errors/html/debug.cssapp/Views/errors/html/debug.jsapp/Views/errors/html/error_exception.phpcomposer.jsonenvlicense.txtphpunit.xml.distpublic/.htaccesspublic/index.phpspark