Re: [PHP-DEV] [RFC] Primary Constructors

[email protected] (Nick Sdot)
Newsgroups php.internals
Message-ID <[email protected]>
Hey Rowan,

On 29.06.26 16:00, Rowan Tommins [IMSoP] wrote:
> On 29/06/2026 07:31, Nick Sdot wrote:
>>
>> If "use conventional constructors, if you need `readonly` classes" 
>> stands, then the same can be argued for everything else in the RFC.
>>
>
> For the record, my view is completely the opposite: if the new syntax 
> allows everything a normal constructor does, just in a slightly 
> different position, it will lead to endless style discussions of which 
> to use.


That's a fair opinion, and not unexpected. Personally, I oppose 
introducing more inconsistencies to PHP. Looks like that we need to have 
these discussions then?

> In fact, I don't think even property hooks belong in a primary 
> constructor; they're ugly enough in a constructor promoted property.

It's a feature that was accepted to PHP and exists already. So it 
doesn't really matter whether we (I agree -- shouldn't be used for 
anything more than eg a neat callback) find it ugly and we have to deal 
with its existence. You are basically making a point for allowing 
primary constructor bodies. Having them allows to have a readonly 
classes with primary constructors, and assign properties in their body. 
Neat.

> I think it's perfectly fine to have short-hands that only cover 
> specific use cases, and longer forms that let you express more complex 
> use cases. It's one of the reasons I voted against the recent RFC to 
> allow an extra reassignment of properties in the constructor 
> [https://wiki.php.net/rfc/promoted_readonly_constructor_reassign]. 


For the record, my view is completely the opposite: without allowing 
primary constructor bodies the added value of adding the new syntax is 
nearly non-existent.

Quoting from your message in the first thread to this:

> I don't think we should add extra syntax to the language just to 
> change people's habits. If you want a constructor body as the first 
> thing in the class, you can do that right now.


...because the exact argument can be made from either point of view. To 
quote you again: "all or nothing"; bodies should be allowed.

--

Cheers
Nick
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.