4.4.6에서 4.4.7로 업그레이드

설치 방법에 맞는 업그레이드 지침을 참조하십시오.

필수 파일 변경사항

URI 보안

URI에 허용되지 않는 문자열이 포함되지 않았는지 확인하는 기능이 추가되었습니다. 이 검사는 CodeIgniter 3의 URI 보안과 동일합니다.

이 기능을 활성화하는 것을 권장합니다. app/Config/App.php에 다음을 추가하십시오:

public string $permittedURIChars = 'a-z 0-9~%.:_\-';.

자세한 내용은 URI 보안를 참조하십시오.

오류 파일

오류 페이지가 업데이트되었습니다. 다음 파일을 업데이트하십시오:

  • app/Views/errors/html/debug.css

  • app/Views/errors/html/error_exception.php

주요 변경사항

컨트롤러 필터의 경로

컨트롤러 필터에서 처리되는 URI 경로가 URL 디코딩되지 않던 버그가 수정되었습니다.

참고

라우터는 URL 디코딩된 URI 경로를 처리한다는 점에 유의하십시오.

Config\Filters에는 URI 경로를 지정하는 부분이 있습니다. URL 디코딩 시 값이 달라지는 경로가 있다면 URL 디코딩된 값으로 변경하십시오.

예시:

public array $globals = [
    'before' => [
        'csrf' => ['except' => '%E6%97%A5%E6%9C%AC%E8%AA%9E/*'],
    ],
    // ...
];

public array $globals = [
    'before' => [
        'csrf' => ['except' => '日本語/*'],
    ],
    // ...
];

Time::difference()와 일광 절약 시간(DST)

이전 버전에서 Time::difference()로 날짜를 비교할 때, 일광 절약 시간(DST)으로 인해 24시간이 아닌 날이 포함된 경우 예기치 않은 결과가 반환되었습니다. 자세한 내용은 시간 및 날짜 주의사항를 참조하십시오.

이 버그가 수정되어 해당 경우 날짜 비교 결과가 하루씩 이동될 수 있습니다.

드문 경우지만 이전 버전의 동작을 유지하려면, Time::difference()에 전달하기 전에 비교할 두 날짜의 타임존을 UTC로 변경하십시오.

프로젝트 파일

프로젝트 공간 (root, app, public, writable)의 일부 파일이 업데이트되었습니다. 이 파일들은 system 범위 밖에 있으므로 직접 변경하지 않으면 수정되지 않습니다.

프로젝트 공간의 변경사항 병합을 도와주는 서드파티 CodeIgniter 모듈이 있습니다: Packagist에서 찾기.

콘텐츠 변경사항

다음 파일들은 중요한 변경사항(사용 중단 또는 시각적 조정 포함)이 있으므로 업데이트된 버전을 애플리케이션에 병합하는 것을 권장합니다:

설정

  • app/Config/App.php
    • $permittedURIChars 속성이 추가되었습니다. 자세한 내용은 URI 보안를 참조하십시오.

모든 변경사항

다음은 프로젝트 공간에서 변경된 모든 파일 목록입니다. 많은 파일들이 런타임에 영향을 미치지 않는 단순한 주석이나 형식 변경입니다:

  • app/Config/App.php

  • app/Config/Cache.php

  • app/Config/ContentSecurityPolicy.php

  • app/Config/Database.php

  • app/Config/Exceptions.php

  • app/Config/Filters.php

  • app/Config/Format.php

  • app/Config/Logger.php

  • app/Config/Mimes.php

  • app/Config/Routing.php

  • app/Config/Toolbar.php

  • app/Config/Validation.php

  • app/Config/View.php

  • app/Controllers/BaseController.php

  • app/Views/errors/html/debug.css

  • app/Views/errors/html/error_exception.php

  • composer.json