어제 나온 따끈따끈한 PHP 8.0.0-rc3 테스트버전을 사용해서 라이믹스를 돌려보고 있습니다.
PHP 8.0 정식버전은 11월 말에 릴리즈될 예정입니다.
메인화면, 게시판, 관리자 화면 등에서 치명적인 오류를 뿜는 부분은 대부분 쉽게 수정이 되네요.
오늘자 라이믹스 develop (2.0.0-beta) 순정버전 기준으로 일단 돌아가는 상태로는 만들어 놓았습니다.
다행히 정의되지 않은 변수나 배열 키에 접근하는 흔한 이슈는 치명적인 오류가 아니고 그냥 워닝이기 때문에
그런 것이 한 페이지에 500개씩 떠도 실제 작동에 영향은 없습니다. 속도가 느려질 뿐...
대부분의 워닝을 잡은 후에야 속도를 비교하는 의미가 있을 것 같네요.
그러나 상당수의 서드파티 자료들이 배열이 아닌 것을 count()한다거나
함수 호출시 파라미터를 누락시키거나, 클래스 상속 후 메소드를 다르게 하는 등 치명적인 오류를 발생시키기 때문에
PHP 8.0에서 다양한 서드파티 자료를 사용하려면 상당한 시간과 노력이 필요할 것 같습니다.
라이믹스용 스케치북 게시판도 몇 군데 수정이 필요하더군요.
약간 당황했던 부분...
XE에서 오랫동안 사용해 온 XmlParser 클래스가 갑자기 PHP 내장클래스와 충돌하게 되어 버렸습니다. ㄷㄷㄷ
급하게 XeXmlParser로 변경하고, PHP 7.x에서는 XmlParser로 alias 처리했습니다.
대부분 코어 내부적으로만 사용하는 클래스이기 때문에 BaseObject만큼 파급력있는 이슈는 아닐 것 같습니다만
서드파티 자료에서 XmlParser를 호출한다면? (예: content 위젯을 기반으로 만든 다른 위젯이라면?)
in_array(변수,배열변수)
이경구 배열변수 값이 존재 하지 않는 경우 워닝이 뜨던데요. 이경우도 치명적인 오류이죠?
그리고 스킨에서 흔하게 implode() 배열이 아니거나 혹은 배열인데 값이 없을 수 있거나 하나한 상태의 사용도 마찬가지인지..