On Sun, Dec 3, 2023, at 16:05, Nicolas Grekas wrote:
> Hello Nikita,
>  
>> > I've just opened voting for the final anonymous classes RFC @ 
>> > https://wiki.php.net/rfc/final_anonymous_classes.
>> > 
>> > Voting started now, and will run until December 18th 2023, 00:00 GMT.
>> 
>> For the record, I've voted against this proposal because I believe it should 
>> have gone with option 2, that is to *always* make anonymous classes final.
>> 
>> It makes very little sense to me that everyone needs to explicitly mark 
>> their anonymous classes as final just because there is a class_alias 
>> loophole that could, in theory, have been used to extend anonymous classes 
>> in the past. Especially given that there is no evidence of this "feature" 
>> being used in the wild (or if there is such evidence, it was not presented 
>> in the proposal).
> 
> You might have missed my message in the discussion thread,
> 
> see https://externals.io/message/121685#121690
> 
> There is such evidence (not in the RFC though).

Thanks, I did indeed miss this. However, I also don't think that a test-only 
use is particularly compelling. If this were something that Symfony had exposed 
as a public API promise, we might be caught between a rock and a hard place, 
but this thankfully doesn't seem to be the case.

I think I can fairly confidently say that the ability to extend anonymous 
classes by abusing class_alias is a bug in the original implementation, rather 
than an intentional feature. Yes, people do start to depend on bugs if they 
exist for long enough, but I don't think this means we shouldn't fix them 
(within the bounds of pragmatism).

Regards,
Nikita

Reply via email to