Re: RFC: short and inner classes

From: Date: Sat, 15 Mar 2025 00:01:26 +0000
Subject: Re: RFC: short and inner classes
References: 1 2  Groups: php.internals 
Request: Send a blank email to [email protected] to get a copy of this message


On Sat, Mar 15, 2025, at 00:21, Rowan Tommins [IMSoP] wrote:
> On 05/03/2025 23:11, Rob Landers wrote:
> >
> > I'd like to introduce my RFC for discussion: 
> > https://wiki.php.net/rfc/short-and-inner-classes
> 
> 
> As a user, I find the concept of inner classes quite confusing.
> 
> However, I was looking at some code earlier and thought an "inner enum" 
> would be useful, to replace various "MODE_FOO" type class constants - 
> but I see those are left to future scope. :(

Actually, it appears I did not limit it in the implementation... So, maybe we could play with it and
see what breaks. I simply left traits, enums, and interfaces to future scope because 1) I
didn't have a working implementation yet, 2) had no idea what would break and 3) every time
someone suggests a change to enums, the discussion explodes.

Having inner enums, traits, and interfaces is actually quite simple. Might as well see how simple.
:) But fwiw, I do plan on a near immediate RFC(s) for these if this thing passes, as well as short
classes -- I also have a semi-finished draft with short enums as well, but that one is actually
physically impossible without making 'enum' a true reserved word. The "hack" (if
you will) to bypass that requirement is still in place and makes the grammar (likely) impossible.

I will have to fix this tomorrow, because I am not a fan of having inner classes on interfaces, at
least. I will play with it on enums and traits and see what breaks. I suspect inner classes on
traits will cause utter chaos.

> I'm aware they exist in a lot of other languages, though, so I thought 
> I'd look around at how the proposed version compares. It seems there's 
> quite a zoo out there...
> 
> One common theme I do note is that all four of the pages I found are 
> titled "nested classes" or "nested types"; in some cases, "inner 
> class"/"inner type" has a specific meaning, which I don't think matches 
> the RFC's proposal.

I actually borrowed heavily from C#. I'm familiar with its usage and rules, and it fits nicely
with PHP paradigms.

— Rob


Thread (102 messages)

« previous php.internals (#126774) next »