On Thu, Nov 27, 2014 at 1:43 PM, Rowan Collins <rowan.coll...@gmail.com> wrote:
> Lazare Inepologlou wrote on 27/11/2014 10:35: > > 2014-11-27 4:47 GMT+01:00 guilhermebla...@gmail.com < >> guilhermebla...@gmail.com>: >> >> Hi, >>> >>> I worked on an implementation of a somehow controversial concept that >>> exists in hack and C#: abstract final classes. >>> >>> https://wiki.php.net/rfc/abstract_final_class >>> >>> My motivation is to further expand class support to add modifiers (PPP - >>> public, protected, private). I added this change to initially segregate >>> grammar rules. It was an easy feature without extensive complexity and >>> covers some use-cases. >>> >>> >>> "Abstract final" is a strange way to name it. What you want is a >> "static" >> class: >> >> * The fact that one cannot initialise an abstract class is only a side >> effect. Abstract classes are meant to be used for inheritance. >> >> * Abstract static methods are not possible (one more reason why abstract >> is >> a bad name). >> >> * A "static" class does not have to be final, given the fact that PHP is >> one of the few languages that offer a robust Late Static Binding. >> > > This has always been my feeling. To me, "abstract" means "must be > extended", and "final" means "can't be extended", so combining the two > seems like a self-contradiction. > > The fact that abstract classes allow static methods to be called without > sub-classing always seems a bit odd to me - it's as though only the > constructor is really abstract, not the whole class. > > A "static" class, however, whether "final" or not, is definitely something > I've wanted. > > Regards, > -- > Rowan Collins > [IMSoP] > > > -- > PHP Internals - PHP Runtime Development Mailing List > To unsubscribe, visit: http://www.php.net/unsub.php > > for the record I also brought up this argument (abstract and final being contradicting ideas) in the pull request comments(before this thread was created). -- Ferenc Kovács @Tyr43l - http://tyrael.hu