2011-03-17 4 views
1

5.2에서 자동으로 실패하고 5.3에서 치명적인 오류가 발생하는 SplFileObject를 직렬화하려고합니다. 지금까지 SplFileObject를 서브 클래 싱하고 (간소화 된) 다음 코드를 사용하여 Serializable 인터페이스를 구현하여 5.2에서이 문제를 해결했습니다. 전체 버전은 $ open_mode 및 $ context를 처리하지만 해당 질문과 관련이 없습니다.PHP 5.3으로 SplFileObject를 직렬화하는 방법은 무엇입니까?

하지만 5.3은 여전히 ​​치명적인 예외 :

PHP Fatal error: Class SerializableFileObject could not implement interface Serializable in Unknown on line 0 

가 나는 또한 아무 소용, 마법 __sleep__wakeup 방법을 추가했습니다.

구글은 그것에 대해 많이 알지 못하는 것 같아서, 5.3에서 SplFileObject를 직렬화하는 것이 가능한지 궁금합니다.

업데이트 : 질문에 대한 답변이 없습니다 (내 의견 참조).

+1

PHP 소스를 간략히 살펴보면 다음과 같이 표시됩니다 : SplFileObject 직렬화가 결코 일어나지 않을 것이라는 것을 의미하는'spl_ce_SplFileInfo-> serialize = zend_class_serialize_deny;'( –

답변

0

분명히 당신은 그것을 직렬화 할 수 없습니다. CLI 모드에서 테스트 그리고 이것은 내가있어 무엇 :

Warning: Uncaught exception 'Exception' with message 'Serialization of 'SplFileObject' is not allowed' in php shell code:1 

별로 방황 자원 (mysql을 연결, 파일 핸들러) 직렬화 할 수 없으며, SplFileObject 모든 파일 리소스를 기반으로되는 것을 고려.

+0

잘 있습니다. __sleep/__wakeup)은 자원을 직렬화 할 수있는 목적으로 사용되었습니다. –

관련 문제