cut_str() must be of the type string...
CMS/프레임워크 | Rhymix 2.1 |
---|---|
개발 언어 | PHP 7.4 |
안녕하세요?
주말에 Rhymix 2.1.8로 업데이트를 했습니다.
전반적으로 큰문제는 발견되지 않았는데요.
특정 게시판에서 아래와 같은 에러가 발생했습니다.
(사실 이게 업데이트로 인해 발생한 건지 원래에도 있었는데 오늘 발견된 건지는 모르겠습니다.)
서버 오류
TypeError #0 "Return value of cut_str() must be of the type string, null returned" in modules/board/skins/common/_list_normal.html on line 202 (via common/legacy.php on line 440)
_list_normal.html 의 202번째에는 아래와 같은 확장변수의 글자를 자르는 코드가 들어있고요.
{cut_str($document->getExtraEidValueHTML('extra_var1'),22)}
게시판 목록의 전체에서 발생하지는 않고 특정 페이지를 들어가면 에러가 뜨는데 이를 어쩌면 좋을까요?
댓글 5
$document->getExtraEidValueHTML('extra_var1') ?? '' 으로 수정하시면 오류자체는 해결될 수 있어요
글자를 자르는 원칙이 글자가 있는 건 자르고, 없는 건 에러를 표출한다는 거라서 발생하는 것 같은데요.
기존에는 글자가 있으면 자르고, 없으면 null 값을 출력한다였나보네요.....
해당 값이 없으니 리턴이 나온 모양인데 저거 자체는 기본적으로 boolean 타입의 false를 https://github.com/rhymix/rhymix/blob/master/common/legacy.php#L478C12-L478C18 이 링크의 코드에서 리턴 시켜서 그럴겁니다.
확인해보니 php7까지는 그것이 무조건 리턴이 false으로 출력하게 되어있다보니 여기에서 false가 출력이 되엇다면 실제로 값이 없어보이는 것으로 리턴되시을 가능성이 없진 않네요.
결과적으로 처음에 extra_var1 쪽에 들어가야할 내용이 없어서 생긴 문제임은 마찬가지라서.. 리턴을 실제로 문자열을 해주지 못한 상황이라 에러가 발생된것으로 보여지네요.
참고로 PHP8에서는 무조건 '' 빈 문자열로 나오기때문에 위의 에러가 나타나지 않을겁니다.
기진님께서 라이믹스 develop브랜치에 패치 해주셧네요. 다음 패치때 받으시면 될 것 같아요!
https://github.com/rhymix/rhymix/commit/7132ef4c000fd9ee201219e87709a4da8127d2d2
감사합니다~~!!