On Mon, Jun 15, 2015 at 4:55 PM, Aaron Piotrowski <aa...@icicle.io> wrote:

>
> On Jun 15, 2015, at 6:56 AM, Anatol Belski <anatol....@belski.net> wrote:
>
> Hi Dmitry,
>
> -----Original Message-----
> From: Dmitry Stogov [mailto:dmi...@zend.com <dmi...@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 be
> 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 checked
> 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 tests
> 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 nearly
> all
> these tests and many others when updating the phrasing on uncaught
> exception
> messages. While many tests were changed, users won’t have such issues
> because they aren’t catching these exceptions yet.
>
> Would you like me to move zend_ce_throwable to zend_exceptions.h/c or is
> that
> something you’d 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’t extend
> Exception. This was most of the point of the RFC, as I find code such as
> `catch (Exception $e) { … } catch (EngineException) { … }` 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 of
> PHPUnit.
> Namespaces have been around long enough that most libraries and apps will
> not
> have such a class in the root namespace. As far as BC breaks go, renaming 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.

Thanks. Dmitry.



>
> Regards,
> Aaron Piotrowski
>
>

Reply via email to