국내 최고 XE 개발 sejin7940 - XE 관련팁
XE FAQ 는 제가 XE공홈 '묻고 답하기'에 답변한 내용들 중 일부를 정리한 내용입니다. (대부분이 제가 한 답변이죠)
XE Tips 는 제가 XE 공홈에 쓴 XE 관련 유용한 팁들입니다. 기능개선은 공홈에 안 적어둔 XE 유용 개선팁들입니다.
유용정보는 외부 검색을 통해 알아낸 소스등을 기재해둔 곳입니다.
버그 신고내역들은 XE 사용하다가 발견한 버그 패치방법들로, Core Issue 에 기록해뒀기에 XE 에 적용이 되었을 가능성이 있겠죠

제가 쓴 글들에 대해 퍼가실때는 꼭 출처를남겨주시고.. (다만 플래시뷰 기반이기에 퍼가기는조금 힘들 수 있겠죠 ^^;)
타회원의 글들도 적혀있는 출처를 같이 꼭 기재해주세요
출처 XE Github 
출처URL https://github.com/xpressengine/xe-core/issues/2181 

php 7.1  에서 오류나는 함수의 변수 초기화 관련 오류 사항 외에

( http://sejin7940.co.kr/xe_tips/117103 참조 ) 

 

 

php 7.2 기반에서 문제되는 사항은  Object 클래스의 사용금지로 생기게 된 오류들이다.

최신 XE 에서는 이 부분들 대응이 다 되어있는데

서드파티 자료들은 거의 대응이 안 되어있을것이다.  

아직 7.2 를 안 쓰는게 안전하고, 써야한다면 관련 부분들을 다 찾아서 고쳐야한다

 

 

https://www.xpressengine.com/devlog/23249915

https://github.com/xpressengine/xe-core/issues/2181

bnu 님과 kijin 님의 이슈들을 기재해둡니다.

추후 이 문제가 발생하실때 참조하거나,  자료 만들때 참고해서 미리미리 보완작업을 해두는게 좋을듯하네요

 

 

 

PHP 7.2에서 Object 클래스를 사용할 수 없음.
PHP 7부터 예약어로 지정됐고, 최근 PHP 7.2에서 변경으로 인해 사용이 제한 됨.
PHP 7.2는 현재 RC6 단계이지만 이 변경 사항은 정식버전에도 반영될 것으로 보임

XE는 이러한 PHP 7.2의 변경사항에 맞춰 Object 클래스의 이름을 BaseObject로 변경합니다.
이로 인한 호환성 문제를 피하기 위해 PHP 7.2 미만에서는 여전히 Object 클래스를 사용할 수 있습니다
(class_alias()를 이용해 Object클래스를 유지합니다)

이는 PHP 7.2의 변경으로 인해 XE가 변경을 따라갈 수 밖에 없는 부분입니다.
return new Object(...)과 같은 코드를 사용한 모듈, 애드온, 위젯 등은 이 변경사항을 반영하지 못하면 PHP 7.2 이상에서 동작할 수 없습니다. 다음과 같이 변경 사항을 적용해야 PHP 7.2 미만과 이상에서도 동작할 수 있습니다.

써드파티 모듈 등에서 return new Object(-1, 'error message')처럼 사용하고 있다면 다음과 같이 수정해야 합니다.

return new Object(-1, 'errmsg');
$output = new Object();
// 이와 같이 사용했다면 아래와 같이 변경

return class_exists('BaseObject') ? new BaseObject(-1, 'errmsg') : new Object(-1, 'errmsg');
$output = class_exists('BaseObject') ? new BaseObject() : new Object();

이름이 바뀐 BaseObject와 Object 클래스를 모두 지원할 수 있도록 합니다.

kijin 님께서 제시해주신 코드이며, 동작에 문제가 없는 것 까지 확인해주셨습니다.
다만, PHP 7.2의 정식 버전이 배포되기 이전이므로 PHP 7.2 정식 버전 및 이후의 변경에 따라 이 방법이 유효하지 않을 수도 있습니다.

 

 

또는.....

 

 

 

서드파티 자료 제작자 중 수정하실 부분이 많다면 아래와 같이 편리하게 처리할 수도 있습니다.

우선 모듈명.class.php에 정의된 모듈 기본 클래스에 메소드 하나를 추가합니다.

public function makeObject($code, $msg)
{
    return class_exists('BaseObject') ? new BaseObject($code, $msg) : new Object($code, $msg);
}

그리고 이 클래스를 상속받는 다른 모든 클래스(컨트롤러, 모델, 뷰 등)에서

return new Object(-1, 'errmsg');

라고 되어 있던 부분을 모두

return $this->makeObject(-1, 'errmsg');

라고 바꾸시면 그나마 깔끔하게 호환성을 유지할 수 있습니다.

서드파티 모듈 내에서 이런 함수는 얼마든지 자유롭게 만들어 쓰셔도 됩니다.

전체 579건
번호 카테고리 제목 출처 등록일 조회
공지 XE 기능개선 XE 1.11.4 이후에서 파일 업로드시 정상 작동 안 하는 현상 수정법 XE github  2019.04.02 43
공지 XE 기능개선 php 7.1 환경에서 XE 오류 나는 경우 확인할 사항 sejin7940  2018.07.11 107
» 유용정보 php7.2 환경에서 XE 오류가 생기는 경우 - Object 클래스 변경 필요 XE Github  2017.11.27 458
공지 XE 기능개선 XE 1.8.30 이하에서 반드시 수정해주셔야하는 부분입니다. XE 1.8.31  2017.02.26 183
공지 1.8.18 XE 1.8.18 에서 사용시 반드시 수정해야할 사항들 ( XE 1.8.20 이후에서는 수정 불필요 ) xetown  2016.04.03 19797
공지 XE 기능개선 XE 1.8.12 이후부터 proc controller 일부가 작동 안 할 경우 확인할 부분 [1] XE  2015.10.16 19869
579 XE 기능개선 XE 가 autoset10 에서 파일첨부 안 될때 해결방법 ( 윈도우서버 환경에서도 동일한 원인 ) sejin7940  2019.10.08 2
578 XE 기능개선 마이페이지 - 쪽지함보기 에서 수신여부 변경 안 되는 경우 수정방법 sejin7940  2019.09.30 0
577 XE 기능개선 외부에서 사이트로 최초 접속시에만 동작하게 하려면 sejin7940  2019.09.17 4
576 유용정보 cafe24 에 외부 SSL 적용하는 방법   2019.09.11 5
575 XE 기능개선 댓글 에디터에서도 에디터 툴바의 버튼들이나 컴퍼넌트들이 나오게 하려면.. sejin7940  2019.09.04 8
574 1.11.5 휴지통 목록에서 휴지통에 담긴 글을 볼때 html 소스가 노출되는 현상 수정방법 sejin7940  2019.09.03 3
573 유용정보 유용한 css - %와 px 동시에 연상 / table 에서 padding 과 border 연산 codingfactory  2019.08.13 6
572 XE 기능개선 video 태그 속성 회원이용불가문제 xetown  2019.08.11 12
571 1.11.5 관리자페이지의 회원목록에서 타회원들의 비밀번호 찾기 질문/답변 수정 가능하도록 개선 sejin7940  2019.07.03 16
570 1.11.5 설문 모듈에서 필수 항목 수가 2개 이상인 경우 1개만 입력하여도 설문이 입력되는 버그 LIFOsitory  2019.07.01 8
569 1.11.5 XE 1.11.0 이후에서 글쓰기에서 '미리보기' 버튼 클릭시 html 소스가 노출되는 현상 sejin7940  2019.06.25 31
568 다른 XE자료들 simplestrap 레이아웃 스킨에서 'XE Validator Message' 항목이 저장이 안 되는 현상 sejin7940  2019.06.25 9
567 다른 XE자료들 댓글알림 ( notification ) 모듈에서 문자발송을 '게시판 확장변수 연동' 으로 사용할 경우 발송 안 되는 현상 수정 sejin7940  2019.06.24 10
566 XE FAQ 게시판 제목을 넣지 않으면 항상 같은 제목으로 입력되게.. sejin7940  2019.06.10 13
565 XE 기능개선 글 수정시 제목의 기호들이 이상한 문자로 나오는 경우 수정법 sejin7940  2019.06.07 18
564 1.11.5 XE 1.11.5 에서 유저가 게시글에서 설문컴퍼넌트를 사용시 설문 생성 안 되는 오류 해결법 sejin7940  2019.06.25 29
563 XE FAQ 로그인 실패시 실패내역 쪽지와 메일 발송 되는걸 발송 안 되게 하려면.. sejin7940  2019.05.21 20
562 유용정보 span 태그 내에서 img 중앙정렬하려면 stackoverflow  2019.05.03 33
561 XE 기능개선 비밀번호 변경 메일에서 링크주소 클릭하라는 안내문구 강조하려면 sejin7940  2019.05.02 18
560 유용정보 라이믹스(Rhymix) 와 XE 인 경우를 구별하고 싶은 경우 sejin7940  2019.04.19 57
XE Login