Blog

'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과 라이믹스 모두에서 적용하여 호환성을 유지합니다.

태그 연관 글
  1. [2018/06/07] Blog XE Core 1.9.7 배포 안내 by XE
  2. [2018/03/07] Blog [보안 패치] XE 1.9.6 배포 안내 (1.9.5 포함) by XE *2
  3. [2018/03/06] Blog [보안 패치] XE 1.9.4 배포 안내 by XE
  4. [2018/01/09] Blog XE 1.9.3 버전 배포 안내 by XE *1
  5. [2018/01/04] Blog [취소] XE Core 1.10의 PHP 지원 버전 변경 안내 by XE *1