특히 PHP 8.1에서 실행할 때 다음 클래스를 기본 PHP 직렬화와 호환되도록 만들려고 합니다.
으아악낮은 PHP 버전에서는 모든 것이 괜찮았지만 8.1에서는 未捕获的异常:'SerializedDomDocument' 的序列化不允许
每当尝试将此类对象传递给 serialize()
기능이 생성됩니다. 다음은 이러한 예외를 생성하는 코드의 예입니다: https://3v4l.org/m8sgc.
PHP 7.4에 도입된 __serialize()
/ __unserialize()
메소드를 알고 있지만 이를 사용해도 별 도움이 되지 않는 것 같습니다. 다음 코드 조각은 https://3v4l.org/ZU0P3에서 관찰된 것과 동일한 예외를 발생시킵니다.
저는 이 문제에 대해 매우 혼란스럽습니다. 조언을 주시면 정말 감사하겠습니다. 현재로서 앞으로 나아갈 수 있는 유일한 방법은 명시적인 정규화/비정규화를 도입하는 것인데, 이로 인해 코드베이스 API가 크게 변경될 것입니다. 나는 이런 상황을 피하고 싶다.
2021년 8월 10일에 이 변경 사항이 버전 8.1 RC1에 적용되었습니다.
DOM 클래스를 직렬화 불가능으로 표시
따라서 이러한 클래스는 더 이상 직렬화할 수 없습니다.