Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:54895 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 3018 invoked from network); 24 Aug 2011 21:16:04 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 24 Aug 2011 21:16:04 -0000 Authentication-Results: pb1.pair.com header.from=tyra3l@gmail.com; sender-id=pass Authentication-Results: pb1.pair.com smtp.mail=tyra3l@gmail.com; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmail.com designates 74.125.83.42 as permitted sender) X-PHP-List-Original-Sender: tyra3l@gmail.com X-Host-Fingerprint: 74.125.83.42 mail-gw0-f42.google.com Received: from [74.125.83.42] ([74.125.83.42:53153] helo=mail-gw0-f42.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 6C/42-24735-21A655E4 for ; Wed, 24 Aug 2011 17:16:02 -0400 Received: by gwb17 with SMTP id 17so1533884gwb.29 for ; Wed, 24 Aug 2011 14:16:00 -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:content-transfer-encoding; bh=DatlF3BGH6lW2FWKnpib2BQQ9UVfojwMZaFhN/N7J+Y=; b=gQEC4fdmwwiH+I7qsBB3AKlY/ve7HR1aQxjwP1LfXTLVoUXvEmVJlR6EZ1esHwm8Zi 1v5awxl4GQ+2xMZ/9K7Lu/iex6pANGifEnIf2ERkg7czN/p66QJcIz+le8txH2T601P4 R1ae3O3FDXgdNg7iL/EXrOvASSlFhouoUV370= MIME-Version: 1.0 Received: by 10.150.210.19 with SMTP id i19mr5487945ybg.440.1314220559759; Wed, 24 Aug 2011 14:15:59 -0700 (PDT) Received: by 10.146.83.5 with HTTP; Wed, 24 Aug 2011 14:15:59 -0700 (PDT) In-Reply-To: <4E5562E1.3070005@lsces.co.uk> References: <1314115682.2635.98.camel@guybrush> <4E545A6C.60704@akbkhome.com> <4E54C658.6070209@akbkhome.com> <887FE7CFF6F8DE4BB3A9535F53AFD06A495AAA2F@il-ex2.zend.net> <887FE7CFF6F8DE4BB3A9535F53AFD06A495AAE17@il-ex2.zend.net> <887FE7CFF6F8DE4BB3A9535F53AFD06A495AB00F@il-ex2.zend.net> <887FE7CFF6F8DE4BB3A9535F53AFD06A495AB153@il-ex2.zend.net> <4E54F0D6.9030005@akbkhome.com> <4E552E46.6070405@sugarcrm.com> <4E5562E1.3070005@lsces.co.uk> Date: Wed, 24 Aug 2011 23:15:59 +0200 Message-ID: To: Lester Caine Cc: PHP internals Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Subject: Re: [PHP-DEV] PHP 5.3.8 Released! From: tyra3l@gmail.com (Ferenc Kovacs) > If I am reading things right, is_a was only designed to handle an object,= so > feeding it a mixed parameter in isError was always wrong? As far as I can > see, on the whole, the PEAR code only ever feeds an object and feeding it= a > string would have to be a real error? So there are a number of actions he= re > all of which are potentially wrong, and PEAR should return an error if > $input is not a valid object rather than relying on undocumented actions > simply to fail? for the record, this is what happened: 1, https://bugs.php.net/bug.php?id=3D53727 got reported 2, dimitry commited http://svn.php.net/viewvc/?view=3Drevision&revision= =3D312904 3, that commit broke Pear, as is_a() started throwing a warning, if non-object is passed as first argument https://pear.php.net/bugs/bug.php?id=3D18656 4, Johannes brought that issue up on the mailing list: http://www.mail-archive.com/internals@lists.php.net/msg51868.html and in the end the the accepted solution was to remove the warning. 5, Helgi fixed Pear in the meanwhile http://svn.php.net/viewvc/pear/pear-core/tags/PEAR-1.9.5/PEAR.php?r1=3D3130= 81&r2=3D313083&pathrev=3D313340 6, Stas removes the warning http://svn.php.net/viewvc?view=3Drevision&revision=3D313162 Dmitry adds some tests http://svn.php.net/viewvc/?view=3Drevision&revision=3D313271 7, Helgi reverts the Pear fix http://svn.php.net/viewvc/pear/pear-core/tags/PEAR-1.9.5/PEAR.php?r1=3D3133= 40&r2=3D313339&pathrev=3D313340 8, nobody notices the meaning of this change: http://svn.php.net/viewvc/php/php-src/branches/PHP_5_4/Zend/zend_builtin_fu= nctions.c?r1=3D312904&r2=3D312903&pathrev=3D312904#l848 which AFAIK means that the zend_lookup_class (and hence autoloading) will always be called if the first argument is a string for is_a. previously it would only happen for is_subclass_of() Tyrael --=20 Ferenc Kov=C3=A1cs @Tyr43l - http://tyrael.hu