On Mon, Feb 5, 2018 at 8:33 AM, Marco Pivetta <ocram...@gmail.com> wrote:
> > On Mon, Feb 5, 2018 at 3:28 PM, Michael Morris <tendo...@gmail.com> wrote: > >> The problem is that behavior has been around so long that any attempt to >> change it would incur a massive amount of changes. Using the E_STRICT >> notice level instead of E_DEPRECATED has been floated as one fix for this, >> but this doesn't change the fact that major applications and frameworks, >> such as Drupal, pride themselves in being able to pass all tests even with >> E_STRICT enabled. The maintainers of these projects would be annoyed to >> say >> the least to need to fix thousands of lines of code to get back to that >> point, and downstream projects such as Drupal could end up waiting years >> for all their upstream libraries to get their act together. >> > > Much like any upgrade requiring patches for full compliance with newer > PHP versions, it needs work. > > The typical workflow is: > > * add PHP.NEXT to the CI setup > * run everything through the tests again, figure out how much has broken > * fix it > > In this case, we even *already* have *multiple* tools that automatically > fix this problem in one shot. > > Since the two issues are somewhat tied, why not bind them to a >> configuration flag following the pattern that was used to ultimately >> remove >> register_globals functionality from the language? At this point let it be >> known that when constant/function overloaders hit a php.ini config option >> will be added to turn them on -- and turning them on will turn global >> scoping for functions off. >> > > Argh > > Agreed, but you can't just pull the rug out from under people. It's painful, but it's better to let people opt in to such a major change than to "break" their code. > > > Marco Pivetta > > http://twitter.com/Ocramius > > http://ocramius.github.com/ > >