[VOTE] Abstract final / Static classes

php.internals

Guilherme Blanco

11 years ago
Hi internals, After a good round of discussion, I updated the original "abstract final class" proposal into a "static class" proposal. However, I kept both patches online so it's up to voters decide which one it could be implemented. Patches are now complete and voting phase starts now and will be active until 12/19/2014. As this is a language update, it requires 2/3 pro or against the feature. https://wiki.php.net/rfc/abstract_final_class Happy voting! Regards,
-- Guilherme Blanco MSN: guilhermeblanco@hotmail.com GTalk: guilhermeblanco Toronto - ON/Canada

Florian Margaine

11 years ago
Hi, On Fri, Dec 12, 2014 at 5:12 PM, guilhermeblanco@gmail.com < guilhermeblanco@gmail.com> wrote:
> > Hi internals, > > After a good round of discussion, I updated the original "abstract final > class" proposal into a "static class" proposal. > However, I kept both patches online so it's up to voters decide which one > it could be implemented. > Patches are now complete and voting phase starts now and will be active > until 12/19/2014. > > As this is a language update, it requires 2/3 pro or against the feature. > > https://wiki.php.net/rfc/abstract_final_class
Why does the example use `final`? final static class Environment { private static $rootDirectory = '/var/www/project'; public static function getRootDirectory() { return self::$rootDirectory; } } Also, the vote presents 2 options. The RFC is in a weird state where it mentions "abstract final" but doesn't explain anything about them. The votes don't seem to be what the example is... Could you edit your RFC?
> > > Happy voting! > > Regards, > > -- > Guilherme Blanco > MSN: guilhermeblanco@hotmail.com > GTalk: guilhermeblanco > Toronto - ON/Canada >
Cheers,
-- Florian Margaine

Guilherme Blanco

11 years ago
It's part of the history of that RFC, accessible here: https://wiki.php.net/rfc/abstract_final_class?rev=1417060830 On Fri, Dec 12, 2014 at 11:18 AM, Florian Margaine <florian@margaine.com> wrote:
> > Hi, > > > > On Fri, Dec 12, 2014 at 5:12 PM, guilhermeblanco@gmail.com < > guilhermeblanco@gmail.com> wrote: >> >> Hi internals, >> >> After a good round of discussion, I updated the original "abstract final >> class" proposal into a "static class" proposal. >> However, I kept both patches online so it's up to voters decide which one >> it could be implemented. >> Patches are now complete and voting phase starts now and will be active >> until 12/19/2014. >> >> As this is a language update, it requires 2/3 pro or against the feature. >> >> https://wiki.php.net/rfc/abstract_final_class > > > Why does the example use `final`? > > final static class Environment > { > private static $rootDirectory = '/var/www/project'; > public static function getRootDirectory() > { > return self::$rootDirectory; > } > } > > Also, the vote presents 2 options. The RFC is in a weird state where it > mentions "abstract final" but doesn't explain anything about them. The > votes don't seem to be what the example is... > > Could you edit your RFC? > > >> >> >> Happy voting! >> >> Regards, >> >> -- >> Guilherme Blanco >> MSN: guilhermeblanco@hotmail.com >> GTalk: guilhermeblanco >> Toronto - ON/Canada >> > > Cheers, > -- > Florian Margaine >
-- Guilherme Blanco MSN: guilhermeblanco@hotmail.com GTalk: guilhermeblanco Toronto - ON/Canada

Florian Margaine

11 years ago
Hi, Le 12 déc. 2014 17:28, "guilhermeblanco@gmail.com" < guilhermeblanco@gmail.com> a écrit :
> > It's part of the history of that RFC, accessible here:
https://wiki.php.net/rfc/abstract_final_class?rev=1417060830
>
But then it isn't clear as of right now. What is proposed? The example? The votes? What does `final` has to do with `static`? I'm confused.
> On Fri, Dec 12, 2014 at 11:18 AM, Florian Margaine <florian@margaine.com>
wrote:
>> >> Hi, >> >> >> >> On Fri, Dec 12, 2014 at 5:12 PM, guilhermeblanco@gmail.com <
guilhermeblanco@gmail.com> wrote:
>>> >>> Hi internals, >>> >>> After a good round of discussion, I updated the original "abstract final >>> class" proposal into a "static class" proposal. >>> However, I kept both patches online so it's up to voters decide which
one
>>> it could be implemented. >>> Patches are now complete and voting phase starts now and will be active >>> until 12/19/2014. >>> >>> As this is a language update, it requires 2/3 pro or against the
feature.
>>> >>> https://wiki.php.net/rfc/abstract_final_class >> >> >> Why does the example use `final`? >> >> final static class Environment >> { >> private static $rootDirectory = '/var/www/project'; >> public static function getRootDirectory() >> { >> return self::$rootDirectory; >> } >> } >> >> Also, the vote presents 2 options. The RFC is in a weird state where it
mentions "abstract final" but doesn't explain anything about them. The votes don't seem to be what the example is...
>> >> Could you edit your RFC? >> >>> >>> >>> >>> Happy voting! >>> >>> Regards, >>> >>> -- >>> Guilherme Blanco >>> MSN: guilhermeblanco@hotmail.com >>> GTalk: guilhermeblanco >>> Toronto - ON/Canada >> >> >> Cheers, >> -- >> Florian Margaine > > > > -- > Guilherme Blanco > MSN: guilhermeblanco@hotmail.com > GTalk: guilhermeblanco > Toronto - ON/Canada
Cheers, Florian

Guilherme Blanco

11 years ago
RFC is updated exposing both possible usages with both explanations. Hope it doesn't confuse even more. On Fri, Dec 12, 2014 at 11:30 AM, Florian Margaine <florian@margaine.com> wrote:
> > Hi, > > Le 12 déc. 2014 17:28, "guilhermeblanco@gmail.com" < > guilhermeblanco@gmail.com> a écrit : > > > > It's part of the history of that RFC, accessible here: > https://wiki.php.net/rfc/abstract_final_class?rev=1417060830 > > > > But then it isn't clear as of right now. What is proposed? The example? > The votes? What does `final` has to do with `static`? > > I'm confused. > > > On Fri, Dec 12, 2014 at 11:18 AM, Florian Margaine <florian@margaine.com> > wrote: > >> > >> Hi, > >> > >> > >> > >> On Fri, Dec 12, 2014 at 5:12 PM, guilhermeblanco@gmail.com < > guilhermeblanco@gmail.com> wrote: > >>> > >>> Hi internals, > >>> > >>> After a good round of discussion, I updated the original "abstract > final > >>> class" proposal into a "static class" proposal. > >>> However, I kept both patches online so it's up to voters decide which > one > >>> it could be implemented. > >>> Patches are now complete and voting phase starts now and will be active > >>> until 12/19/2014. > >>> > >>> As this is a language update, it requires 2/3 pro or against the > feature. > >>> > >>> https://wiki.php.net/rfc/abstract_final_class > >> > >> > >> Why does the example use `final`? > >> > >> final static class Environment > >> { > >> private static $rootDirectory = '/var/www/project'; > >> public static function getRootDirectory() > >> { > >> return self::$rootDirectory; > >> } > >> } > >> > >> Also, the vote presents 2 options. The RFC is in a weird state where it > mentions "abstract final" but doesn't explain anything about them. The > votes don't seem to be what the example is... > >> > >> Could you edit your RFC? > >> > >>> > >>> > >>> > >>> Happy voting! > >>> > >>> Regards, > >>> > >>> -- > >>> Guilherme Blanco > >>> MSN: guilhermeblanco@hotmail.com > >>> GTalk: guilhermeblanco > >>> Toronto - ON/Canada > >> > >> > >> Cheers, > >> -- > >> Florian Margaine > > > > > > > > -- > > Guilherme Blanco > > MSN: guilhermeblanco@hotmail.com > > GTalk: guilhermeblanco > > Toronto - ON/Canada > > Cheers, > Florian >
-- Guilherme Blanco MSN: guilhermeblanco@hotmail.com GTalk: guilhermeblanco Toronto - ON/Canada

Florian Margaine

11 years ago
Hi, On Fri, Dec 12, 2014 at 5:35 PM, guilhermeblanco@gmail.com < guilhermeblanco@gmail.com> wrote:
> > RFC is updated exposing both possible usages with both explanations. > Hope it doesn't confuse even more. > >
Perfect! Thanks. Cheers,
-- Florian Margaine

Tjerk Meesters

11 years ago
> On 13 Dec 2014, at 00:35, guilhermeblanco@gmail.com wrote: > > RFC is updated exposing both possible usages with both explanations. > Hope it doesn't confuse even more.
Hi, in your "As static class” example, it doesn’t really demonstrate that you can omit the “static” modifier from the function declarations. Also, it’s not clear if the same applies to “As abstract final”.

Guilherme Blanco

11 years ago
Hi everyone, Voting is now closed. Since this RFC required a 2/3 majority, the result is against the implementation of this feature in PHP. RFC is now updated and moved to withdrawn section. Thanks, On Fri, Dec 19, 2014 at 10:43 PM, Tjerk Meesters <tjerk.meesters@gmail.com> wrote:
> > > On 13 Dec 2014, at 00:35, guilhermeblanco@gmail.com wrote: > > > > RFC is updated exposing both possible usages with both explanations. > > Hope it doesn't confuse even more. > > Hi, in your "As static class” example, it doesn’t really demonstrate that > you can omit the “static” modifier from the function declarations. > > Also, it’s not clear if the same applies to “As abstract final”. > > > > > On Fri, Dec 12, 2014 at 11:30 AM, Florian Margaine <florian@margaine.com > > > > wrote: > >> > >> Hi, > >> > >> Le 12 déc. 2014 17:28, "guilhermeblanco@gmail.com" < > >> guilhermeblanco@gmail.com> a écrit : > >>> > >>> It's part of the history of that RFC, accessible here: > >> https://wiki.php.net/rfc/abstract_final_class?rev=1417060830 > >>> > >> > >> But then it isn't clear as of right now. What is proposed? The example? > >> The votes? What does `final` has to do with `static`? > >> > >> I'm confused. > >> > >>> On Fri, Dec 12, 2014 at 11:18 AM, Florian Margaine < > florian@margaine.com> > >> wrote: > >>>> > >>>> Hi, > >>>> > >>>> > >>>> > >>>> On Fri, Dec 12, 2014 at 5:12 PM, guilhermeblanco@gmail.com < > >> guilhermeblanco@gmail.com> wrote: > >>>>> > >>>>> Hi internals, > >>>>> > >>>>> After a good round of discussion, I updated the original "abstract > >> final > >>>>> class" proposal into a "static class" proposal. > >>>>> However, I kept both patches online so it's up to voters decide which > >> one > >>>>> it could be implemented. > >>>>> Patches are now complete and voting phase starts now and will be > active > >>>>> until 12/19/2014. > >>>>> > >>>>> As this is a language update, it requires 2/3 pro or against the > >> feature. > >>>>> > >>>>> https://wiki.php.net/rfc/abstract_final_class > >>>> > >>>> > >>>> Why does the example use `final`? > >>>> > >>>> final static class Environment > >>>> { > >>>> private static $rootDirectory = '/var/www/project'; > >>>> public static function getRootDirectory() > >>>> { > >>>> return self::$rootDirectory; > >>>> } > >>>> } > >>>> > >>>> Also, the vote presents 2 options. The RFC is in a weird state where > it > >> mentions "abstract final" but doesn't explain anything about them. The > >> votes don't seem to be what the example is... > >>>> > >>>> Could you edit your RFC? > >>>> > >>>>> > >>>>> > >>>>> > >>>>> Happy voting! > >>>>> > >>>>> Regards, > >>>>> > >>>>> -- > >>>>> Guilherme Blanco > >>>>> MSN: guilhermeblanco@hotmail.com > >>>>> GTalk: guilhermeblanco > >>>>> Toronto - ON/Canada > >>>> > >>>> > >>>> Cheers, > >>>> -- > >>>> Florian Margaine > >>> > >>> > >>> > >>> -- > >>> Guilherme Blanco > >>> MSN: guilhermeblanco@hotmail.com > >>> GTalk: guilhermeblanco > >>> Toronto - ON/Canada > >> > >> Cheers, > >> Florian > >> > > > > > > -- > > Guilherme Blanco > > MSN: guilhermeblanco@hotmail.com > > GTalk: guilhermeblanco > > Toronto - ON/Canada > >
-- Guilherme Blanco MSN: guilhermeblanco@hotmail.com GTalk: guilhermeblanco Toronto - ON/Canada

Pascal MARTIN

11 years ago
On 12/12/2014 17:12, guilhermeblanco@gmail.com wrote:
> Patches are now complete and voting phase starts now and will be active > until 12/19/2014. > > https://wiki.php.net/rfc/abstract_final_class
Hi, After speaking about this RFC with other members of AFUP, we would be on the -1 side for this. Summarizing our thoughts : * static classes should not be encouraged * if the goal is to have a set of utility functions, they can be set up in a namespace -- being able to autoload functions could prove useful, though.
-- Pascal MARTIN, AFUP - French UG http://php-internals.afup.org/

Guilherme Blanco

11 years ago
Hi Pascal, I said this earlier, but considering purely namespaced functions and autoloading is not the same as static classes. Namespaced functions doesn't have support for variables and that's a huge strike against it and in favor of static classes. Cheers, On Thu, Dec 18, 2014 at 6:54 PM, Pascal Martin, AFUP < mailing@pascal-martin.fr> wrote:
> > On 12/12/2014 17:12, guilhermeblanco@gmail.com wrote: > >> Patches are now complete and voting phase starts now and will be active >> until 12/19/2014. >> >> https://wiki.php.net/rfc/abstract_final_class >> > > Hi, > > After speaking about this RFC with other members of AFUP, we would be on > the -1 side for this. > > Summarizing our thoughts : > * static classes should not be encouraged > * if the goal is to have a set of utility functions, they can be set up > in a namespace -- being able to autoload functions could prove useful, > though. > > -- > Pascal MARTIN, AFUP - French UG > http://php-internals.afup.org/ > > > -- > PHP Internals - PHP Runtime Development Mailing List > To unsubscribe, visit: http://www.php.net/unsub.php > >
-- Guilherme Blanco MSN: guilhermeblanco@hotmail.com GTalk: guilhermeblanco Toronto - ON/Canada