> -----Original Message----- > From: Joe Watkins [mailto:krak...@php.net] > Sent: Tuesday, September 24, 2013 10:08 PM > To: internals@lists.php.net; Kristopher > Subject: Re: [PHP-DEV] RFC: Anonymous Classes > > On 09/24/2013 01:30 PM, Kristopher wrote: > > On Tue, Sep 24, 2013 at 8:25 AM, Terence Copestake < > > terence.copest...@gmail.com> wrote: > > > >> Playing devil's advocate here, could this feature make the language > >> more expressive? > >> > >> Take for example an API where you'd typically wrap a method call in > >> try/catch blocks to handle the various "outcomes" e.g. a user login, > >> you'd maybe have a UserDisabled exception, a UserAlreadyLoggedIn > >> exception, a UserPasswordIncorrect exception, etc. > >> > >> With the addition of this syntactic sugar, the method could instead > >> accept an anonymous class with a onDisabled, onLoggedIn, > >> onPasswordIncorrect methods. > >> > >> Perhaps it would also have a performance benefit over cascading > >> through catch blocks? Though someone else would have to confirm that. > >> > > > > Why wouldn't you want this to a concrete, real class? I don't see the > > benefit, in your example, of doing an anonymous class vs defining an > > actual class and passing that in as the handler. > > > > People express themselves in different ways ... > > It is mostly just about expressing the same thing in different ways, we can > find justification for it when pushed, because we are being pushed ... > > I'm a bit confused by this idea that every RFC has to be accompanied by a > long list of use cases, expressing ideas that cannot conceivably be expressed > any other way ... that doesn't make any sense, you can do almost anything a > bunch of ways ...
[Robert Stoll] Every syntactic sugar means more overhead for maintaining PHP and therefore I think it is a good idea to review the idea and ask for real use cases. However, real use cases were presented in this case which makes sense IMO and thus I think the RFC should be accepted. I am not a fan of anonymous classes with lot of logic in it, but small anonymous classes can be very useful as presented before. One additional use case I can think of is a composition where it is not exposed to the outside of the class. An anonymous class extending a small interface or extending an abstract class with only a few methods seems to be the suitable candidate here IMO. If PHP would support inner classes I would probably prefer a private inner class when the anonymous class starts to hold to much logic. Cheers, Robert > I think enough use cases have been provided, it's an established, widely > used, part of OO elsewhere: The _only_ question is should we have it, which > is incidentally the reason the RFC was sparse in the first place ... > > Cheers > > > > -- > PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: > http://www.php.net/unsub.php -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php