Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:103756 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 88880 invoked from network); 18 Jan 2019 03:12:33 -0000 Received: from unknown (HELO mail-ot1-f52.google.com) (209.85.210.52) by pb1.pair.com with SMTP; 18 Jan 2019 03:12:33 -0000 Received: by mail-ot1-f52.google.com with SMTP id a11so12791841otr.10 for ; Thu, 17 Jan 2019 15:49:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=tjcJ7Djzoexpp3papaxNmI4GTczsWwbxcmFH7g9deN0=; b=qe1fJk0a6XiERNkXx5lL/49y9qrrovBaI3jOXSQvZQJpYFWG11YDYClORWi13BQXeN t2NL/3c3Y88ZoGThiTn37rGRHfDY9qiEpnURUp6wYkKtDbHR4h4vlElekJ5z9+Cl/Fsl Wi2tlR+4ij1mC1XFt/yYqniLtyuw6S3Fb+8dY4vTPKiTAUaXj6JWsnNB9dbAdR5ih9B8 hMWFac/Zmhi2N0OXfyvfxJDSM3X7DevTd0xQxSSj9qYKAhPZkedagVr+Xm+tC0GbYI6h rRe+onA+N698qpoL5mTxv+YiTmNanXxi4Rb51OroCwlWHQHGF8rJmfO7Al2UT7hsdtst gRng== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=tjcJ7Djzoexpp3papaxNmI4GTczsWwbxcmFH7g9deN0=; b=rsBnyn9ffHB/J/6J2W+qPg0HG6u9BeE5C0xHG8VTWN2xK2NfNf2RYb95Nh/0j5kLKw lYm7rfpJ8d89AO/0UURxHR8SQrvmuH9zimpwy5YX1RB9mOrOewr3YmO/JiubT04OCtG/ ABgfiOGx01oxRVZhyc79if2gfoumZh8tig8xxCBxm54sS3uOFC/mjIzMcXl7ffaju/Kv yKDvXCDqhYb+GlRT04lnEGlOnoPdc+LNQNckuEE0/5EWUxU10qrRnua+rA/Kb1s3RnBj 6SgWdVmYrzCFyfkRnE938G0y1bxzTTi3IP8IjIORYMEadUc56454o+/cfb85aR4mI5nL I5yA== X-Gm-Message-State: AJcUukeQzrHZqwV3aryi5G2Xtv6ktoLxUbaTuZMgHqNpHwXB+500Gg9X EShiVCAxl7/PuWM9Z8YHgyBvhZ6AxjF2RNfvBtmptlUD X-Google-Smtp-Source: ALg8bN6Dn3ynhyWY4UPXr92mYUfgOXtneT/IW6Noi3VYn5i2ebLJ+xHxLHAgnPH2tUXSctT/4R/TD4VyfdmJANAK5Wo= X-Received: by 2002:a9d:2f64:: with SMTP id h91mr10240184otb.14.1547768941912; Thu, 17 Jan 2019 15:49:01 -0800 (PST) MIME-Version: 1.0 Date: Thu, 17 Jan 2019 21:48:51 -0200 Message-ID: To: internals Content-Type: multipart/alternative; boundary="000000000000fa2988057fb00960" Subject: Unserializes, inheritance and allows_classes From: marcospassos.com@gmail.com (Marcos Passos) --000000000000fa2988057fb00960 Content-Type: text/plain; charset="UTF-8" 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 --000000000000fa2988057fb00960--