Q&A

Object 를  BaseObject로 바꿀때...

2019.04.08 04:48
937
0
CMS/프레임워크 XE 1.x
개발 언어 PHP 5.x

   social xe 아래와 같은 instanceof Object 도 instanceof  BaseObject로 변경하는게 맞죠?

 

[ 기진곰님의 답변 ]

new Object 는 모두 new BaseObject 로 바꾸고,

가끔 extends Object 라고 쓰는 모듈도 있는데, 이것도 모두 extends BaseObject 로 바꾸면 됩니다.

단, 이것과 무관한 ModuleObject 같은 것도 있으니 Object 를 검색해서 일괄 변경하면 안됩니다.

자칫하면 Object 를 BaseObject 로 바꾸다가 또 일괄변환해서 BaseBaseObject 가 되는 참사가... ㅋㅋㅋ

new Object, extends Object 처럼 앞에 다른 단어가 있는 경우만 바꿔야 합니다.


            // 연동 체크
            if(($check = $oLibrary->checkLinkage()) && $check instanceof Object && !$check->toBool() && $sns_info->linkage != 'Y')
            {
                return $check;

마트몬 Lv. 8

댓글 9

  • 2019.04.08 05:26 #1206274

    네, 저건 바꾸셔야 합니다.^^

  • 2019.04.08 05:40 #1206286
    감사합니다.
  • 2019.04.08 09:18 #1206392

    조금 다른 질문인데요. 혹시 baseobject로 바꾼 모둘이나 애드온을 php : 5.5.9-1ubuntu4.22 xe최신버젼 환경으로 업로드 시켜서 사용해도 문제없겠죠 ?

    추후 php7.X대로 업데이트를 할 예정인데 미리 문제가 될만한 것을 변경해서 수정해 두면 업데이트 시 조금 덜 혼란스러울것 같아서 문의드립니다.

  • 2019.04.08 09:22 #1206401
    코어 버전이 1.9 이상이라면 PHP 버전 상관없이 BaseObject 쓰실 수 있습니다.
  • 2019.04.08 11:31 #1206437
    네 답변 감사합니다.
  • 2019.04.08 09:24 #1206405
    네. 1.9 이상이면 미리 수정해 놓고 하시는게 php7.2가 적용되었을때 문제를 최소화 할 수 있습니다.
    저희도 7.0으로 운영하다 서버를 이전하면서 7.2로 바꾸었는데 오류 안뜨게 미리 다 바꿔놓고 했답니다.
  • 2019.04.08 05:45 #1206290

    return class_exists('BaseObject') ? new BaseObject($status, $message) : new Object($status, $message);

    이건 바꾸지 마세요. 새로운 함수에 대응하게 한 코드 입니다. 업데이트가 된 모듈에는 코어 버전에 따라 동작하도록 분기되어 동작하도록 코드 입니다.

    혹시나 해서 이것도 알려드립니다. (업데이트가 안되는 자료에는 이 코드가 있을 수는 없습니다.)

  • 2019.04.08 05:46 #1206295
    XE 1.9 이상이라면 바꿔버려도 상관없습니다. 조건과 무관하게 BaseObject가 사용될 테니까요.
  • 2019.04.08 05:48 #1206299
    아.. php7.2 면 무조건 1.9 이상이겠군요 ㅋㅋ