https://xe1.xpressengine.com/devlog/23249915
'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 서버에서는 이 변경사항이 반영되지 않은 확장 기능 사용에 주의하시기 바랍니다.
Object 클래스를 아예 없애는 것은 아닙니다. PHP 버전에 따라 최대한 광범위하게 지원할 예정이므로, XE를 다음 버전으로 업데이트하시더라도 PHP 7.1 이하 버전의 서버라면 Object 클래스를 그대로 사용할 수 있습니다.
따라서 PHP 7.2로 업그레이드하지 않으신다면 기존에 Object로 코딩되어 있는 모듈을 수정하실 필요는 없습니다. XE 1.9가 나오더라도 눈에 띄는 변화가 없을 테니 그냥 업데이트하시면 될 거예요.
모듈을 개발하시는 분들 입장에서는 녹색으로 표시된 조합만 신경쓰시면 됩니다. 빨간색 조합은 애초에 코어가 작동하지 않을 테니까요. 그래서 깃허브 링크에 나오는 것처럼 BaseObject 클래스가 존재하는지 (또는 PHP 버전이 7.2 이상인지) 확인하여 클래스명을 선택해 주셔야 합니다. BNU님과 함께 여러 방안을 의논해 보았으나 호환성을 유지하는 방법이 그것밖에 없겠더라고요.
물론 현실은... PHP 7.1에서도 에러를 뿜는 모듈이 널려있죠 ㅎㅎ
라이믹스는 XE 1.9와 최대한 호환성을 유지하면서 추가로 몇 가지 권장사항을 발표할 예정입니다.