Q&A

force_rewrite 애드온 php8 대응 수정

2023.08.03 10:25
143
0
CMS/프레임워크 Rhymix 2.1
개발 언어 PHP 8.2

안녕하세요.

 

PHP Exception: TypeError #0 "count(): Argument #1 ($value) must be of type Countable|array, null given" in addons/force_rewrite/force_rewrite.addon.php on line 187

 

기진곰님이 만드신건데 혹시 깃허브로 관리되고 있는게 있을까요?

 

기존 

if (count($_SESSION['force_rewrite']) > 1000)

 

수정

if (isset($_SESSION['force_rewrite']) && is_array($_SESSION['force_rewrite']) && count($_SESSION['force_rewrite']) > 1000) {

 

이렇게해서 에러는 해결했는데 이렇게 작업해도 될런지 궁금합니다.

 

감사합니다.

톰캣 Lv. 11
시대의 흐름에 뒤떨어지지 않도록 아주 천천히지만 노력하고 있습니다.

댓글 7

  • 2023.08.03 10:27 #1778581
    네 is_array만 채크 해주시면 됩니다.
  • 2023.08.03 12:56 #1778594

    php 8.0 부터는 count() 함수의 파라미터가 셀 수 없을 경우 즉시 죽습니다.(fatal error)
    is_countable() 또는 is_array() 를 통해 타입검사를 미리하고 실행해야합니다.

  • 2023.08.03 12:59 #1778599

    두분 다 답변감사합니다.
    저는 아무래도 이래저래 하나씩 해결하다 결국 막혀서 안되나 봅니다.
    PHP 7.4.33 로 다운그레이 시켰습니다 ㅠㅠ

  • 2023.08.03 15:01 #1778651

    수정했습니다.

    저장소 경로: https://github.com/poesis/xe-force-rewrite

  • 2023.08.03 16:43 #1778687
    감사합니다
  • 2023.08.08 22:12 #1779618
    아직 XpressEngine1 못벗어났는데요..저장소에 있는 거, XE1.8.4. 버전에서도 사용할 수 있을까욧?
  • 2023.08.09 01:19 #1779634
    구체적으로 1.8.4에서 되는지는 모르겠습니다만, 큰 틀에서는 5년 이상 별다른 변화가 없었던 애드온이니 특별한 문제가 있을 것 같지는 않습니다.

    서버의 PHP 버전이 너무 낮거나, 예전에 더 오래된 버전에서 업데이트하면서 이상한 설정 찌꺼기가 남아 있는 경우 예상치 못한 버그가 나타날 가능성은 있습니다. 한번 실험해 보시고 혹시 에러나면 지우세요.^^