Hi internals, Today I stumbled upon a limitation when implementing the unserialize method of a serializable class which depends on an abstraction also serializable. Currently, there is no way to unserialize an object specifying a parent class in the allowed_classes option:
class SerializableBase implements \Serializable { > } > class SerializableChild extends SerializableBase { > } > class Foo implements \Serializable { > private $dependency; > public function __construct(SerializableBase $dependency) { > $this->dependency = $dependency; > } > public function serialize() : string { > return \serialize($this->dependency); > } > public function unserialize($data) : void { > $this->dependency = \unserialize($data, ['allowed_classes' => > SerializableBase::class]); > } > } Is this an intentional limitation? - Marcos