RX/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://xe1.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');

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

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

전체 695건
번호 카테고리 제목 출처 등록일 조회
공지 XE 기능개선 XE 1.11.18 이후 버전의 익명 수정 버그 수정법 xetown  2023.10.07 3199
공지 XE 기능개선 XE 1.11.14 보안패치 - 타인의 쪽지 내용을 확인할 수 있는 버그 패치방법 xetown  2023.10.03 3265
공지 XE 기능개선 XE 1.11.6 이후 보안배치 #4 file rhymix  2022.07.05 3433
공지 1.11.6 XE 1.11.6 이후 보안배치 #3 rhymix  2022.04.02 3379
공지 1.11.6 XE 1.11.6 이후 보안배치 #1 xetown  2021.06.22 3774
공지 1.11.6 XE 1.11.6 이하 에서 공개댓글을 비밀댓글로 변경시 생길 수 있는 오류 수정법 sejin7940  2021.01.10 3696
공지 XE 기능개선 XE 1.11.4 이후에서 파일 업로드시 정상 작동 안 하는 현상 수정법 XE github  2019.04.02 6449
공지 XE 기능개선 php 7.1 환경에서 XE 오류 나는 경우 확인할 사항 sejin7940  2018.07.11 6372
» 유용정보 php7.2 환경에서 XE 오류가 생기는 경우 - Object 클래스 변경 필요 XE Github  2017.11.27 9944
공지 XE 기능개선 XE 1.8.30 이하에서 반드시 수정해주셔야하는 부분입니다. XE 1.8.31  2017.02.26 7160
공지 1.8.18 XE 1.8.18 에서 사용시 반드시 수정해야할 사항들 ( XE 1.8.20 이후에서는 수정 불필요 ) xetown  2016.04.03 26281
공지 XE 기능개선 XE 1.8.12 이후부터 proc controller 일부가 작동 안 할 경우 확인할 부분 [1] XE  2015.10.16 26201
355 유용정보 form 의 input 에서 엔터키 누를때 submit 시키는 소스 sejin7940  2016.02.22 1041
354 유용정보 IE 에서 jquery 의 .load() 가 작동 안 할때.. ( 실시간 애드온 기능들 ) stack overflow  2016.02.17 1983
353 XE 기능개선 최근수정일 정렬 개념의 이해... 강제로 이 순서를 이용해 정렬을 변경하고프면.. sejin7940  2016.02.17 1303
352 XE 기능개선 XE 1.7 이나 1.8 초기버전에서 메뉴설명항목 추가하는 방법 YJSoft  2016.02.17 1237
351 다른 XE자료들 스케치북 스킨 웹진형에서 전체 링크를 풀고 각 항목별 링크 거는 방법 sejin7940  2016.02.06 11757
350 다른 XE자료들 새글알림 모듈 ( newpost ) 에서 관리자페이지에서 ? 표시 도움말 클릭 안 되는 버그수정법 sejin7940  2016.02.04 858
349 XE 기능개선 닉네임 클릭시 회원정보등 회원팝업메뉴 노출 안되게 sejin7940  2016.01.31 1326
348 XE 기능개선 도메인 변경 후 글 등록이 안 되는 경우 확인할 사항들 - checkCSRF sejin7940  2016.01.30 1187
347 XE 기능개선 글등록시 관리자 메일 발송시 보내는 사람 이름을 닉네임으로 sejin7940  2016.01.25 1228
346 XE 기능개선 등록일등이 8자리 숫자로 되입되어있는걸 14자리르 강제 변경하는 방법   2015.12.24 1004
345 XE 기능개선 비밀글 이여도 갤러리나 웹진형에서, 썸네일이나 요약 부분이 나타나게 수정하려면.. sejin7940  2015.12.23 1194
344 XE 기능개선 http://도메인/admin 접근 안 되던 문제 & 글등록시 잘못된 요청라면서 등록 안 되던 현상 해결책 sejin7940  2015.12.14 1395
343 XE 기능개선 "이 페이지 나가기" 경고창이 뜨는 사이트의 경우 XE  2015.12.03 1559
342 유용정보 엑셀을 csv 화해서 fgetcsv 로 import 할때 주의할 점 ( 줄바꿈 제거 처리 반드시!) sejin7940  2015.11.28 2418
341 XE 기능개선 글 수정일때만 업데이트 아이콘이 뜨게 하고 싶은 경우 ( 댓글 입력시에는 별도로 안 뜨고) sejin7940  2015.11.01 1221
340 XE 기능개선 xpresseditor 의 경우, 파일첨부 / 선택삭제 / 본문삽입 버튼을 눈에 잘 보이게 변경하는 방법 sejin7940  2015.10.28 1280
339 1.8.12 통합검색시 결과값이 제대로 안 나오는 경우 sejin7940  2015.10.27 749
338 1.8.12 CKEditor에도 자동 저장 기능 추가 XE Github  2015.10.25 1118
337 유용정보 에디트 플러스에서 FTP 접속은 되나 파일 열기나 업로드가 안 되는 경우 sejin7940  2015.10.22 1164
336 1.8.12 IE+XpressEditor에서 업로드가 되지 않는 문제점 수정 YJSoft  2015.10.22 674
XE Login