Re: [RFC][Draft] Sealed Classes

From: Date: Tue, 27 Apr 2021 16:22:34 +0000
Subject: Re: [RFC][Draft] Sealed Classes
References: 1  Groups: php.internals 
Request: Send a blank email to internals+get-114202@lists.php.net to get a copy of this message
On Sat, Apr 24, 2021 at 12:55 PM Saif Eddin Gmati <azjezz@protonmail.com> wrote: > Hello Internals, > > I'm sending this email to open discussion about sealed classes, > interfaces, and traits feature for PHP 8.1. > > I have create a Draft RFC here: îCPÒVï— > —V”òhttps://wiki.php.net/rfc/sealed_classes > > A major concern for few people have been the syntax, in which it > introduces 2 new keywords into the languages, therefor, i have added a > section about alternative syntax which could be used to avoid this problem. > > Regards, > > Saif. > Hello, To me the first sentence of the RFC is debatable: > The purpose of inheritance is code reuse, for when you have a class that shares common functionality, and you want others to be able to extend it and make use of this functionality in their own class. That sounds like [abstract] base classes, which certainly permit that, but I wouldn't state that "the purpose" of [designing] class hierarchies is "code reuse", which can also (better?) be achieved with traits or even simply composition (by the way, the introduction then mentions that "PHP has the Throwable interface, which defines common functionality between Error and Exception and is implemented by both", but there is no "code reuse" in an interface). I also agree with others that Shape is probably not a good example, and the ResultInterface example feels like an enum/ADT (and the FilesystemTrait example I guess is to replace @internal phpDoc). I'm not saying that this RFC is bad, but probably not as convincing as it could be. Regards, -- Guilliam Xavier

« previous php.internals (#114202) next »