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