Le Tue, 23 Mar 2021 17:01:40 +0100, Nicolas Grekas <nicolas.grekas+...@gmail.com> a écrit : > Picking up a loose thread: > > https://wiki.php.net/rfc/custom_object_serialization introduced a > > replacement for Serializable in PHP 7.4, so it's time to think about > > deprecating and removing the old mechanism: > > > > https://wiki.php.net/rfc/phase_out_serializable > > > > This RFC follows a rather conversative approach. In PHP 8.1 there will be a > > deprecation warning if Serializable is implemented without also > > implementing __serialize() and __unserialize(). In PHP 9.0, support for > > Serializable is dropped internally, and only the interface retained. In PHP > > 10.0 the interface is dropped as well. > >
It is not clear neither in https://wiki.php.net/rfc/custom_object_serialization nor in the documentation if it is possible to call parent::__serialize() to only add a few fields to serialization. Is this legal/correct/useful: public __serialize ( ) : array { $data = parent::__serialize(); $data['specialField'] = $data['special']->complicatedStuff(); unset($data['special']); return $data; } public __unserialize ( array $data ) : void { $data['special'] = new SpecialComplicatedThing($data['specialField']); unset($data['specialField']); parent::__unserialize($data); } (And as I understand it, it means declaring __unserialize to do something after parent::__unserialize() would be the same as declaring __wakeup?) -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: https://www.php.net/unsub.php