Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:103504 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 7991 invoked from network); 26 Nov 2018 14:28:36 -0000 Received: from unknown (HELO mout.gmx.net) (212.227.15.18) by pb1.pair.com with SMTP; 26 Nov 2018 14:28:36 -0000 Received: from [192.168.2.102] ([91.8.166.218]) by mail.gmx.com (mrgmx002 [212.227.17.190]) with ESMTPSA (Nemesis) id 0MFuWk-1gEbil2Vz4-00EuRh for ; Mon, 26 Nov 2018 11:51:57 +0100 To: internals@lists.php.net References: Message-ID: <072f23be-24bc-c05b-d908-f689980623c6@gmx.de> Date: Mon, 26 Nov 2018 11:51:59 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.3.1 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: de-DE Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K1:m4wLQ4HJN/aV82HIDaEerPQsFALIW2MLZ7CW1GR7CPItzjuXKYV qom7Wx7PH9qC5G3ltiFRQ8ZZ8ql8q0rMmnsESNpHMCEMPNk7Ljuj3+d0s1aaI271PzSoHld EXIek92yl1Vw9Gcy3pIhrAoQzy+6ar1BKVTPdqeji8EiHa84DdwMDkYNy1Fj1fUXSJGuXqG 7Tid+bCExs73Trd3pAMVg== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:wFp+ocSCBAM=:fw4ZKyYIWex28QYsAdcf1T EuUmvn+3uJoqA6GXSipTKPxjDT+pkU6Z9eK9TggFp/42PA60DUOt2geciTVb5lQh41vQ2EZzK pXLHZ82Y0yc5hlZuGRmHhiJldsBDbSb6LaSjXkVosdcaEDXTYRfSHoaD2QboIVkpOhM3YtP1y vYJSUjWu1D2yBnDzK/21WPDT23dURstdE7Fjabu0B34AI49jLrQB09g/gn3vk/vn3cWnqYNRF wWBGjn4JSq0IiLBEkKZ+whUCjXhmtfQlfxcp8faVvKMfa3aFf+LEckTOrdyQqcEiwwfQ+C5WT dJ5JPTetlsKux+AJypG63ua0qbSJdOk4PtaLSuoxKIukkLVRDrdpRxgSRa+ZWIjzR/ocymK2b PbPe40EPejp3c0i0c7Ms367DVQ++5Y94dj0tF8cR19KKU6hou9dl17kKw3moHCHnkbuMs8Zwj 2nJA8Z2Kyg6XlkH68e0tD++aeHs6yRvRr5YcjWLwwDHO8mxhlAX8ZYhVRjuKCug5spMH4xCN9 1MsjS7XqZJImlwPY73wfeV1kRrRl8nNWp8/JeMXphgwrbM11vcGArfutollWidmFgupsRwKEA S1Kxf5CRLyoSH1hm/1jsybc2Xsxm0QtlP963R+rVsJYKFGXyAWH7ZXXEikzvXFT2SSv4HaZRf DHTAd/E1iM7KSsD0Cu2YNc6/QMr1cAEnY7+d8vB7ma1M307W5gjY1Mc7TOrrSn33VF1B+t99N SFWwFqcnTAMKDLeqwuwdePG2No2iO43dbNDzNY1kdncvDQSP3r7C5+cyQq5CqsRq/5gsEgjG6 /Fz76gOiBizJydJYVME9o2RFdPJ5UkZIlTs/XYworBLWTVG0j7B0gabVYv0gHMGB0Nm+T+j6e VAfLfQxeoF3EPPpmanqkdE3S8UPQ0toZU9stKmM6d6FSG13BQj1gcTSQCW/mnj Subject: Re: Built-in classes that cannot be serialized From: cmbecker69@gmx.de ("Christoph M. Becker") On 26.11.2018 at 10:27, Sebastian Bergmann wrote: > The following classes register zend_class_serialize_deny: Closure, COM, > DOTNET, Generator, HashContext, Reflection, ReflectionClass, > ReflectionClassConstant, ReflectionExtension, ReflectionException, > ReflectionFunction, ReflectionFunctionAbstract, ReflectionGenerator, > ReflectionMethod, ReflectionNamedType, ReflectionObject, > ReflectionParameter, ReflectionProperty, ReflectionRype, > ReflectionZendExtension, SimpleXmlElement, SplFileInfo, Variant. > > Are these all the built-in classes that cannot be serialized? Well, the com_dotnet classes have only been made unserializable very recently, due to bug #77177, so I can imagine that there are more classes. Particularly, the database related classes come to mind. For instance, it's currently possible to serialize SQLite3 instances, albeit that makes no sense ("O:7:"SQLite3":0:{}"). > Would it be possible to implement ReflectionClass::isSerializable() that > returns false when the class is a) built-in and b) has > zend_class_serialize_deny registered? I presume that this could easily be implemented, but if the method returns TRUE for all other cases, it would be misleading since classes may unconditionally throw in __sleep(). -- Christoph M. Becker