On Sat, Jun 15, 2024, at 16:40, Bilge wrote:
> On 15/06/2024 14:53, Rowan Tommins [IMSoP] wrote:
> > On 15/06/2024 12:16, Bilge wrote:
> >>
> >> I want to introduce the `static` keyword at the class declaration 
> >> level. That is, the following would be valid: `static class Foo {}`. 
> >
> >
> > This has been proposed before, and was rejected at vote. It was nearly 
> > 10 years ago, so opinions may have changed, but it would be worth 
> > reading through the prior discussion to anticipate or counter the 
> > objections raised, and avoid re-treading the same ground.
> >
> > - RFC: https://wiki.php.net/rfc/abstract_final_class
> > - Pre-vote discussion threads: https://externals.io/message/79211 and 
> > https://externals.io/message/79338
> > - Final vote thread: https://externals.io/message/79601
> >
> > Searching my list archive, I find that it came up again a few months 
> > ago, which I'd entirely forgotten: https://externals.io/message/121717
> >
> > Slightly tangential, but some of the same discussion also came up on 
> > these rather lengthy threads about "static class constructors": 
> > https://externals.io/message/84602 and https://externals.io/message/85779
> >
> >
> > Regards,
> >
> Hi Rowan,
> 
> That's all quite interesting, but I didn't get a good sense of why the 
> idea was rejected, other than people didn't like "abstract final" as the 
> syntax (thank God). As for why "static" was rejected, as stated, I don't 
> get a good sense of it at all, but rather than fall back on the opinions 
> of many who are mostly absent among those polled nine years ago, I'd 
> rather get a sense of the current sentiment of those present today.
> 
> Cheers,
> Bilge
> 

I can see these mostly being used for factories, laravel facades, or utility 
functions. I think they would probably be useful in some codebases.

I would argue that in the codebases I work in, these types of constructs 
represent a code smell and it would be a lot easier to catch via static 
analysis and prevent. The current trick of using traits is much harder to catch 
except during code review.

So, I say “yes please.”

— Rob

Reply via email to