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