On 12.12.19 18:13, Nikita Popov wrote:
On Tue, Dec 10, 2019 at 12:03 PM Dennis Birkholz <p...@dennis.birkholz.biz>
wrote:
But my just want to repeat my main concern: buildin
data structures that are not serializable are a real problem for users
that use serialization extensively. Maybe the solution to that problem
is a method to check whether a provided object graph can be serialized
(which may not be possible due to throwing an exception in __sleep() or
something like that), some way to ignore unserializable elements or some
way to register callback methods to handle unserializable elements.


I'm must be missing something obvious here: Isn't this a reliable way to
detect whether an object graph is serializable?

try {
     $serialized = serialize($value);
} catch (\Throwable $e) {
     // not serializable
}

Checking whether the serialization process worked is different from checking beforehand whether an object graph is serializable as it makes it a lot easier to display a meaningful error message. Something like the Serializable interface in Java. But that seems to not be the PHP way so far, I will have to think about an RFC for a second parameter for serialize() that accepts a callback that can "serialize" objects/variables that fail to serialize themselves...

Greets
Dennis

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to