국내 최고 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://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');

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

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

전체 642건
번호 카테고리 제목 출처 등록일 조회
공지 1.11.6 XE 1.11.6 이후 보안배치 #1 xetown  2021.06.22 56
공지 1.11.6 XE 1.11.6 이하 에서 공개댓글을 비밀댓글로 변경시 생길 수 있는 오류 수정법 sejin7940  2021.01.10 167
공지 XE 기능개선 XE 1.11.4 이후에서 파일 업로드시 정상 작동 안 하는 현상 수정법 XE github  2019.04.02 2813
공지 XE 기능개선 php 7.1 환경에서 XE 오류 나는 경우 확인할 사항 sejin7940  2018.07.11 2861
» 유용정보 php7.2 환경에서 XE 오류가 생기는 경우 - Object 클래스 변경 필요 XE Github  2017.11.27 3813
공지 XE 기능개선 XE 1.8.30 이하에서 반드시 수정해주셔야하는 부분입니다. XE 1.8.31  2017.02.26 2922
공지 1.8.18 XE 1.8.18 에서 사용시 반드시 수정해야할 사항들 ( XE 1.8.20 이후에서는 수정 불필요 ) xetown  2016.04.03 22552
공지 XE 기능개선 XE 1.8.12 이후부터 proc controller 일부가 작동 안 할 경우 확인할 부분 [1] XE  2015.10.16 22576
641 다른 XE자료들 스케치북 스킨에서 댓글들 작성시 textarea 형태 대신 웹에디터가 나오게 하려면.. sejin7940  2021.09.23 0
640 유용정보 크롬에서 HOME END 키가 안먹히고, 페이지 안의 글자 또는 그림 객체들이 선택될때 chrome 고객센터  2021.09.15 7
639 유용정보 글자를 대각선으로 회전시키려면 it-gundan.com  2021.09.15 6
638 유용정보 인쇄 할때 흰색이나 연한 색상의 글자들이 진하게 나오는 현상을 수정 sejin7940  2021.09.15 6
637 유용정보 textarea 에 줄바꿈 (개행) 처리하려면 jootc  2021.09.04 6
636 유용정보 아이폰에서 동영상 이나 사진 이동 안 되는 경우 니닝이의 쑥떡쑥떡  2021.09.02 9
635 XE 기능개선 반응형 기반으로 모바일 환경에서 모바일 설정의 페이지수, 목록수 설정이 적용되도록 하려면 sejin7940  2021.09.01 8
634 유용정보 SVG 아이콘 추출 및 사용법 nana_log  2021.08.25 10
633 유용정보 input 에 자동완성 기능 안 나오게 하려면 stack overflow  2021.08.22 5
632 유용정보 input 박스를 클릭 했을떄 나오는 테두리 색상 없애기 sejin7940  2021.08.22 6
631 XE 기능개선 css outside stoke grepper  2021.08.12 7
630 XE 기능개선 특정서버에서 sejin7940_vote 관리 페이지 오류 나는 경우 수정법 sejin7940  2021.05.17 14
629 1.11.6 레이아웃 설정 저장시 " 가 \" 로 저장되는 경우 sejin7940  2021.04.11 13
628 다른 XE자료들 출석부(attendance) 모듈에서 특정 유저들이 출석 불가능한 경우 오류 수정법 sejin7940  2021.03.17 15
627 XE 기능개선 ckeditor 툴바 펼치기/접기 기본 상태 수정방법 sejin7940  2021.02.27 32
626 유용정보 오버레이 창에서(모달뷰 modal) 스크롤할 때 바디 스크롤 방지 데보나스  2021.02.16 40
625 XE FAQ 에디터에서 파일첨부시 본문삽입되는 이미지에서 자동으로 줄바꿈 (br) 되지 않도록 수정하는 방법 sejin7940  2021.07.21 27
624 유용정보 생일로 만/한국 나이 구하기 소스 Raichu  2021.01.19 19
623 유용정보 xepushapp 기반의 앱 사용시 앱 구별하는 소스 XE푸시앱  2021.01.16 20
XE Login