On Tue, Jul 15, 2025, at 1:07 PM, Dmitry Derepko wrote:
> Hi,
>
> I've found a discussion about Records 
> https://externals.io/message/125975 and found a one key point which I 
> really like in Kotlin (hello): short constructors.
>
> Rob said that short constructor will be probably removed:
>>  1. Inline constructor isn’t necessary and could be proposed separately. 
>> I’ve thought recently about this feature
> I will probably remove this, to be honest. It was for nesting records 
> inside classes or other records, but this feature was declined, so 
> there isn't really a need for it.
>
>
> Whether it's true or not I've played with syntax analyser and created a 
> sugared polyfill for short constructors: 
> https://github.com/php/php-src/pull/19133
>
> Many examples of how it works inside the PR, just read them.
>
> Should I propose the RFC or not?
>
> This step move us further to "light" structures or "heavy" structures 
> written "simple":
>
> class RedBox extends Box(width: 50, height: 200);
>
> $box = new RedBox();
>
> instead of
>
> class RedBox extends Box {
>     public function __construct()
>     {
>         parent::__construct(width: 50, height: 200);
>     }
> }
>
> OR
>
> class RedBox extends Box {
>     public function getWidth(): int
>     {
>         return 50;
>     }
>
>     public function getHeight(): int
>     {
>         return 200;
>     }
> }
>
> OR even with Single Expression Functions RFC:
>
>
> class RedBox extends Box {
>     public function getWidth(): int => 50;
>
>     public function getHeight(): int => 200;
> }
>
>
> -- 
> Best regards,
> Dmitrii Derepko.
> @xepozz

I have some concerns that there may be edge cases we've not thought about, but 
at the moment I am generally in favor.  An RFC and implementation would likely 
help ferret out those edge cases.

I agree that this combined with single expression functions would go a long way 
to making lightweight data structures even easier to create and use.

--Larry Garfield

Reply via email to