공지 [중요!] Object 클래스의 이름 변경 안내(PHP 7.2 버전 호환성)
2017.11.27 14:42
'Object' 클래스의 이름을 'BaseObject' 클래스로 이름을 변경합니다.
XE 1의 주요 클래스 중 하나이고 여러 곳에서 사용 중인 'Object' 클래스가 있습니다.
모든 모듈이 이를 상속받아 사용하고 있으며, 그 외에도 다른 용도로도 광범위하게 사용하고 있습니다.
하지만, PHP 7.2부터 'Object'라는 키워드는 클래스의 이름으로 사용할 수 없게 되었습니다.
Fatal error를 발생시키며, PHP 7.2부터는 XE 1.x가 동작할 수 없게 됩니다.
PHP 7.2에서도 동작할 수 있도록 XE에서 변경할 수 밖에 없는 부분입니다.
이 문제의 해결을 위해 'Object' 클래스의 이름을 'BaseObject'로 변경하는 것을 결정했습니다.
'BaseObject'로 이름을 변경한... PHP 7.2의 호환성 문제를 해결하는 버전은 XE 1.9.0 버전으로 배포할 예정입니다.
XE 1 배포본에서는 해결이 되지만 모듈 등의 확장 기능에서도 이러한 변경을 반영해주어야 합니다.
확장 기능을 배포 하시거나 개발하여 사용하시는 분들은 xe-core/2181 이슈를 참고하여 변경에 대응하실 수 있습니다.
확장 기능에서 이러한 대응을 하지 않으면 PHP 7.2 이상의 환경에서 해당 확장 기능을 이용할 수 없으며,
사이트 동작이 중단될 수 있습니다. PHP 7.2 서버에서는 이 변경사항이 반영되지 않은 확장 기능 사용에 주의하시기 바랍니다.
PHP 7.1 이하 | PHP 7.2 이상 | |
XE 1.8 이하 | Object | XE 1.8.x는 PHP 7.2 이상에서 사용 불가 |
XE 1.9 이상 | Object, BaseObject 둘 다 지원 | BaseObject |
kijin님께서 버전 호환성에 대한 이해하기 쉬운 표를 그려주셨습니다 :)
이 내용은 라이믹스 개발팀 kijin님과 논의하여 도출한 결론이며,
'BaseObject'로 클래스 이름 변경은 XE1과 라이믹스 모두에서 적용하여 호환성을 유지합니다.
댓글 7
-
kmbfamily
2017.11.27 16:05
-
도토리묵
2018.11.28 06:54
ㅠㅠㅠ
-
김심술
2019.01.11 12:04
흐흑 엄청 고생했는데.. 이 글 보고 해결했습니다 감사합니다ㅠㅠ (주르륵)
-
유샤인
2019.06.16 08:31
해결하신 방법 좀 공유해 줄 수 없는 지요? 저희는 지금 아래와 같은 시련을 겪고 있네요.
https://www.facebook.com/youshine/posts/617633868744020:7 -
아긔아자
2019.03.12 16:47
nㅠㅜㅠ
-
세걸
2020.03.31 14:30
통계모듈을 사용해야하는데 수정해야겠어요.
-
천재
2020.08.16 17:16
타임라인 모듈 설치 후 디비 테이블 생성 후 같은 문제가 생겼는데요
어느파일의 Object 를 BaseObject 로 변경해주면 되나요?
모든 리턴값에 삼항연산 넣어야 하는.............