라이믹스 2.0을 준비하면서, 타임라인 및 스티커 모듈이 가장 큰 문제가 발생하고 있습니다.

 

특히 php8.0에서 스티커 모듈의 경우 오류로 인해 사이트 자체가 접속이 안되는 문제가 발생하는데요

 

혹시 PHP8.0 + 라이믹스 2.0을 준비하고 계시는 운영자분들 중에

개발자분께 공동으로 해당 모듈을 최신 라이믹스 및 PHP8.0에서도 오류없이 작동되도록 수정 의뢰하실 분들이 계실까요?

 

개발자분께 공동으로 의뢰드리고, 개발자분들께서 수정해주시면

 

저는 개인적으로 해당 모듈이 다른 XE/라이믹스 사이트에서도 널리 사용되기에 다른 이용자들에게 수정된 버전이 공개되었으면 하는 바램입니다.

  • profile
    저는 현재 디버그를 켜고 워닝으로 뜨는 부분은 다 잡았는데 안잡히는 부분이 있는 걸까요?
    지금 php8에서 테스트 중이신가요?
  • profile profile
    네 타임라인 모듈의 경우 라이믹스 2.0부터 2페이지부터는 글이 보이지 않습니다 (null 값 반환)

    코어의 문제가 아니기에 코어 개발자분들께 요청드릴 사항은 아니고, 서브파티의 오래된 코드를 걷어내야 하는데

    타임라인 모듈을 사용중이신 사이트 운영자분들이 모두 힘을 모아서 개선해봤으면 해서요

    스티커 모듈의 경우 warning은 발생하지 않으나 php8.0부터 문법 자체가 deprecated 되면서 500에럭 ㅏ발생합니다
  • profile profile

    타임라인 모듈 자체가 또 고쳐야 할 부분이 있는거면 저희도 타임라인에 의존하고 있어 문제가 되겠네요.

    그런데 스티커모듈이 현재 디버그에서 알려주지 않는 문법 에러가 있다구요??? php8에서 500에러라면 지금 디버그에서 알려주는게 정상적인 상황 아닌가요?

    저는 스티커 모듈도 그렇고 디버그 켜고 찾아서 잡아내고 있는데요.

     

    혹시 설치과정이나 이런 곳의 문법 오류라면 현재 설치된 상태에서는 디버그에 보고가 안되겠네요.

  • profile profile
    타임라인 모듈의 경우 타 사이트에서는 https://github.com/rhymix/rhymix/issues/1422 와같이 개인적으로 개발자에게 의뢰하여 null 문제를 수정한것 같습니다.

    스티커 모듈의 경우 구문 자체가 7.4에서는 허용이 되나 8.0부터는 deprecated(더이상 사용 불가) 문제로 sticker 모듈 php 파일 문법 자체가 오류 발생합니다.

    8.0설치하자마자 사이트가 백지화되어서 당황했는데 스티커 모듈 때문이더군요...
  • profile profile
    네. 스티커 모듈 현재 워닝으로 뜨는 심각한 오류를 잡지 않고 8.0에 바로 사용하면 문제가 될 겁니다. 제가 질문을 재차 드리는 건 이걸 현재 디버그로 잡았는데도 사이트가 백지화 되셨냐는 질문입니다.
  • profile profile
    네 맞습니다. 라이믹스 디버그 패널을 켠 상태에서, 스티커 상점 및 댓글의 스티커 모달부분을 돌아다닐때는 에러가 하나도 없었는데도 8.0 업그레이드 즉시 오류가 발생하였습니다.
  • profile profile

    현재 php 7.4, 라이믹스 1.9.9.9 로 급하게 내린 상태에서 스티커 상점에서 디버그를 켜보았습니다.

     

    웹지기님처럼 열심히 버그를 잡을고 노력한 결과 그 흔한 WARNING 조차도 발생하지 않는 중 입니다 ㅎㅎ

     

    fdf.PNG

  • profile profile

    저도 열심히 잡는다고 잡았는데 혹시 모르니 테스트 한번 해보시고 알려주시면 좋겠네요.

    스킨폴더는 제거 했습니다. 라이믹스 전용함수 countobj 가 사용되었을 확율이 높으니 XE에서는 못쓸겁니다.

     

  • profile profile

    현재 8.0을 서버에서 내려버려서 테스트는 불가능하나, 당시 500에러가 발생했던 사유는 이것입니다.

     

    stderr: "NOTICE: PHP message: PHP Fatal error:  Unparenthesized `a ? b : c ? d : e` is not supported. Use either `(a ? b : c) ? d : e` or `a ? b : (c ? d : e)` in sticker.controller.php on line 1416"

     

    이 부분은 sticker.controller.php 파일의 하기 부분이 문제였고 (1411번째줄)

    function insertStickerLog($obj, $sequence = false){
    $logged_info = Context::get('logged_info');
    $idx = $sequence ? $sequence : getNextSequence();
    $sticker_srl = $obj->sticker_srl ? $obj->sticker_srl : 0;
    $sticker_file_srl = $obj->sticker_file_srl ? $obj->sticker_file_srl : null;
    $member_srl = $obj->member_srl ? $obj->member_srl : $logged_info ? $logged_info->member_srl : 0;
    $type = $obj->type ? $obj->type : null;
    $comment_srl = $obj->comment_srl ? $obj->comment_srl : null;
    $document_srl = $obj->document_srl ? $obj->document_srl : null;
    $content = $obj->content ? $obj->content : null;
    $point = $obj->point ? $obj->point : $obj->use_point ? $obj->use_point : $obj->price ? $obj->price : null;
    $ipaddress = $obj->ipaddress ? $obj->ipaddress : $_SERVER['REMOTE_ADDR'];
    $regdate = $obj->regdate ? $obj->regdate : date("YmdHis");

     

    이 부분은 웹지기님이 제공해주신 파일에서도 수정되어 있지 않으므로, php8.0에서 저와 동일한 백지 현상을 겪으실 것 같습니다.