php7.2로 넘어가려고 했으니 object 통곡의 벽에 부딪혀

php7.1에 머무르고 있네요

 

일단 몇 년 전 의뢰로 제작했던 모듈 중에는 모듈 컨트롤러에서

if($module_srl == $member_srl) return new Object();

if(in_array($logged_info->user_id, $denied_id_list)) return new Object(-1, '이용이 금지되었습니다.');

라는 부분을 찾았는데

깃헙에 있는 대응 코드를 제가 한번 적용해봤는데

사이트가 500 에러가 뜹니다.

아무래도 제가 잘못 적용한 듯한데

 

혹시 위 2개 예제를 바탕으로 php7.2 대응을 위한

baseobject 예재 좀 알려주실 분 계신가요?

 

어제 하루 종일 머리 싸매고 도전해봤지만 계속 실패입니다 ㅠ

다행히도 의뢰해서 사용하는 모듈 + 써드파티 모듈 수가 10개 미만에 그치네요.

  • Lv36

    우선 XE 1.9.0 이상 버전을 사용하셔야 하고요...

    모듈을 배포하시는 게 아니라 그냥 수정해서 쓰는 것뿐이라면 복잡한 대응코드 쓰시지 말고

    그냥 Object를 모두 BaseObject로 바꾸기만 하면 됩니다.

     

    new Object() → new BaseObject()

    new Object(-1, 어쩌고저쩌고) → new BaseObject(-1, 어쩌고저쩌고)

  • Lv36 ?

    현재 xe 1.9.8인 상태이고, php 7.1인데 저렇게 baseobject로 수정한 상태에서 php 7.1에서도 문제 없나요? (7.2는 일주일 정도 뒤에 적용할 예정인데 미리 수정해두려고 합니다.) 항상 답변 달아주셔서 감사합니다. 깃헙에서 보는 분을 매번 답변 때마다 보니까 영광이네요.

  • Lv36 ?
    그리고 return $this->stop('msg_not_logged');
    이런 경우는 어떻게 수정해야 할까요?
    ruturn new object(-1, 'msg_not_logged');로 하면 될까요?
  • ? Lv36
    네, XE 버전만 맞으면 미리 BaseObject로 수정해놔도 상관없습니다.
  • ? Lv36

    원래 Object가 아니었던 것은 수정할 필요 없습니다. Object가 없어지는 게 문제인데 Object로 수정하다니 ㄷㄷㄷ

  • Lv36 ?
    감사합니다. 덕분에 많은 문제를 해결했어요!
  • Lv36 ?
    앜ㅋㅋㅋㅋ return new BaseObject 적으려던게 그만 ㅋㅋㅋㅋㅋㅋㅋ
  • ?
    검색만해도 여기 많이 나와요
    저도 7.2 사용중 입니다