Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:54728 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 70787 invoked from network); 19 Aug 2011 12:47:29 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 19 Aug 2011 12:47:29 -0000 Authentication-Results: pb1.pair.com header.from=arraypad@gmail.com; sender-id=pass Authentication-Results: pb1.pair.com smtp.mail=arraypad@gmail.com; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmail.com designates 209.85.220.170 as permitted sender) X-PHP-List-Original-Sender: arraypad@gmail.com X-Host-Fingerprint: 209.85.220.170 mail-vx0-f170.google.com Received: from [209.85.220.170] ([209.85.220.170:56151] helo=mail-vx0-f170.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id CD/DB-11562-F5B5E4E4 for ; Fri, 19 Aug 2011 08:47:29 -0400 Received: by vxh24 with SMTP id 24so2789415vxh.29 for ; Fri, 19 Aug 2011 05:47:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=SIJkxYrO2AX5C9+k5yspUr/yayNItHnFADgnycjLhyw=; b=LsxFFX/vVhITzFmhQ214q66VLvRNWAJvXcD/52yTBxFaCnh4ocyC1nmSyK4uDaelCW aesvRHh3Co+anMxZ4hLdUsAAGVoJCRprjFb8GI2HmDJRfjCScUyhrsGBixyA7Wq9v4/1 F3tkI89NzCE2PvIEmkkEgd+5JKFmSrg7wdDLg= MIME-Version: 1.0 Received: by 10.52.33.112 with SMTP id q16mr2002887vdi.114.1313758042957; Fri, 19 Aug 2011 05:47:22 -0700 (PDT) Received: by 10.52.187.167 with HTTP; Fri, 19 Aug 2011 05:47:22 -0700 (PDT) In-Reply-To: References: <4E4E48F6.8010107@php.net> Date: Fri, 19 Aug 2011 13:47:22 +0100 Message-ID: To: Ferenc Kovacs Cc: Paul Dragoonis , Pierre Joye , Sebastian Bergmann , internals@lists.php.net Content-Type: text/plain; charset=ISO-8859-1 Subject: Re: [PHP-DEV] Activation of IGBinary serialization extension in 5.4 by default From: arraypad@gmail.com (Arpad Ray) On Fri, Aug 19, 2011 at 1:40 PM, Ferenc Kovacs wrote: > On Fri, Aug 19, 2011 at 2:31 PM, Arpad Ray wrote: >> On Fri, Aug 19, 2011 at 1:04 PM, Ferenc Kovacs wrote: >>> the downside would be that if you want to serialize/unserialize the >>> data outside of php, your implementation should take care of this >>> prefix. >>> just a wild idea, but maybe useful: >>> instead of creating a prefix, we could serialize the passed data with >>> the given(php, igbinary, etc.) handler, then wrap the whole stuff into >>> an array which holds the name of the used handler and the serialized >>> data, and serialize this array with the old(php) serialize method. >>> this way the datablob would be always a valid serialized string, and >>> would be easier to get the serialize method than with the prefixing. >> >> If my old app couldn't read some newly serialized string, I'd rather >> it failed hard than apparently succeed but have the wrong data. >> > > http://php.net/unserialize > In case the passed string is not unserializeable, FALSE is returned > and E_NOTICE is issued. > so if you unserialize from php, my suggestion would fail harder. > when you unserialize it from another mean (parsing it on your own, or > from a different language), you are right, it would produce a valid > but different result what you would expect, but this could be > documented, and I don't think that that many users do this, and maybe > they are using json/bson/igbinary already. I'm talking about unserialize() in an old (well, current) version of PHP - if it unserializes what is apparently a valid array there would be nothing to indicate it's actually a new version which it can't read. Regards, Arpad