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

Reply via email to