Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:86677 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 89111 invoked from network); 15 Jun 2015 20:36:21 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 15 Jun 2015 20:36:21 -0000 Authentication-Results: pb1.pair.com header.from=nikita.ppv@gmail.com; sender-id=pass Authentication-Results: pb1.pair.com smtp.mail=nikita.ppv@gmail.com; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmail.com designates 74.125.82.45 as permitted sender) X-PHP-List-Original-Sender: nikita.ppv@gmail.com X-Host-Fingerprint: 74.125.82.45 mail-wg0-f45.google.com Received: from [74.125.82.45] ([74.125.82.45:34855] helo=mail-wg0-f45.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id A8/71-15639-4473F755 for ; Mon, 15 Jun 2015 16:36:21 -0400 Received: by wgbhy7 with SMTP id hy7so44760473wgb.2 for ; Mon, 15 Jun 2015 13:36:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=S6fSzmXcxZGhUXMT1wjYjYdCjV2EMCRP81sJlFB5YoY=; b=nuYMmUPKZdT6wX0TCVqG+qYFQFDVbpIdUIxyIt2NtHueRDYhvK+RkYTU2juXbOPvP5 allqMJ8z2cHLJSR6a2dEKge/YNKv9yaPgap9pP2YTElvWRxRJpDUKa0bBPrgrv4NUu1c wBs8VQaslTDv1xYW4D2YPPX9cEuHxKXQedyePoPMs2cEvjRoK60px92tQ/tPhH5Wd93Q cMKb1L/PJiigVsEihD8EXayZ1lVR47ok/Wn/OvpUZat/xbR/AR04jhkh9PE7QeaaHkeU tPnwXSH1bImS08EIa3YSo/eGR2D+a3kMNIebHbxZ/+MVCIYwCwdkYmcaTRKAAjvTLdho 7wbw== MIME-Version: 1.0 X-Received: by 10.194.82.38 with SMTP id f6mr52826511wjy.16.1434400577951; Mon, 15 Jun 2015 13:36:17 -0700 (PDT) Received: by 10.27.179.96 with HTTP; Mon, 15 Jun 2015 13:36:17 -0700 (PDT) In-Reply-To: References: <971AB39D-1E20-43E8-9CF1-A7F67E3C14C3@icicle.io> <556363D3.1040902@gmail.com> <12C3389A-AFF5-42CA-8190-E4227309DAED@icicle.io> <016201d0a6bf$96e37dc0$c4aa7940$@belski.net> <0A4CC87D-2E54-4202-9AA2-22856F0B6011@icicle.io> <008701d0a762$4348c320$c9da4960$@belski.net> <36F7469F-7D86-43F6-ABC7-9252DF707BFC@icicle.io> Date: Mon, 15 Jun 2015 22:36:17 +0200 Message-ID: To: Dmitry Stogov Cc: Aaron Piotrowski , Anatol Belski , PHP Internals Content-Type: multipart/alternative; boundary=047d7bf0bfc2ea1c23051894685a Subject: Re: [PHP-DEV] [RFC] Throwable Interface From: nikita.ppv@gmail.com (Nikita Popov) --047d7bf0bfc2ea1c23051894685a Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable On Mon, Jun 15, 2015 at 4:53 PM, Dmitry Stogov wrote: > > > On Mon, Jun 15, 2015 at 4:55 PM, Aaron Piotrowski wrote= : > >> >> On Jun 15, 2015, at 6:56 AM, Anatol Belski wrote= : >> >> Hi Dmitry, >> >> -----Original Message----- >> From: Dmitry Stogov [mailto:dmitry@zend.com ] >> Sent: Monday, June 15, 2015 10:53 AM >> To: Aaron Piotrowski >> Cc: Anatol Belski; PHP Internals >> Subject: Re: [PHP-DEV] [RFC] Throwable Interface >> >> Hi, >> >> I made a quick code review, and I don't see any technical problems in >> implementation. >> >> 1) Anyway, I think it's a bad idea to rename "EngineException" (and >> others) into >> "Error"(s). >> This will prevent using class "Error" in applications, and may >> potentially break >> some of them. >> I also don't like renaming in ~440 tests (I didn't review all these >> changes). >> >> 2) I think it's better to move "zend_ce_throwable" >> definition/initialization from zend_interfaces.h/c into >> zend_exception.h/c. >> At least, this will allow arg_info reuse. (it's missed now, but should b= e >> added >> now or in the future). >> >> 3) In ext/simplexml/tests/SimpleXMLElement_xpath_3.phpt EngineExcpetion = is >> not renamed into Error. >> >> Thanks for the review. I've also tested the branch which has today's >> master merged in, by now it doesn't show any functional regression. >> >> Actually I part your first concern about Error. Spent some time phishing >> for "class Error" on github and found three apps doing this without >> namespace. But that's from 100 search result pages. And those three apps >> are forked zero to 1 times, so pretty much low usage. This will likely >> break more in the world, we hardly know. >> >> The current RFC can't be changed while in voting. But how it looks like, >> the principle of the Trowable RFC is something everyone agrees on. Maybe= do >> another RFC in parallel for better names? Still I'd stand for taking it >> into alpha2 - if we want to have it, better to arrange it in a way that = it >> doesn't cause unnecessary delays in the release process. >> >> >> >> Hi Dmitry and Anatol, >> >> I fixed three more tests that were missed when merging, as I only checke= d >> those >> that failed after the merge. I should have used find and replace again >> after the >> merge, which is how I changed the majority of the tests. Only a few test= s >> required >> manual changes, mostly because of hard-coded string lengths, and one or >> two >> tests used the class name Error. Note that Nikita recently changed nearl= y >> all >> these tests and many others when updating the phrasing on uncaught >> exception >> messages. While many tests were changed, users won=E2=80=99t have such i= ssues >> because they aren=E2=80=99t catching these exceptions yet. >> >> Would you like me to move zend_ce_throwable to zend_exceptions.h/c or is >> that >> something you=E2=80=99d take care of after the merge? >> > > I don't care about this a lot. I just think it's better. > If you don't see any problems, please, move the code. > > >> I am strongly against naming something _____Exception if it doesn=E2=80= =99t extend >> Exception. This was most of the point of the RFC, as I find code such as >> `catch (Exception $e) { =E2=80=A6 } catch (EngineException) { =E2=80=A6 = }` very >> unintuitive and I >> feel it will lead to confusion for users. >> >> I sifted through search results on GitHub looking for usage of Error >> before >> proposing the RFC and also found only a couple of actual uses from >> generally >> unused projects. Most of the other results are forks of an old version o= f >> PHPUnit. >> Namespaces have been around long enough that most libraries and apps wil= l >> not >> have such a class in the root namespace. As far as BC breaks go, renamin= g >> a >> class in an app is a fairly trivial one to make, and one that very, very >> few people >> will have to do. I feel having a simple name such as Error is more >> important than >> avoiding naming conflicts with a very small amount of code. >> > > Nikita, what is your opinion? > If you don't care, I won't as well. > I'm fine with these changes. Patch looks okay to me as well. Nikita --047d7bf0bfc2ea1c23051894685a--