On Wed, Apr 24, 2019 at 12:04 PM Peter Bowyer <rey...@php.net> wrote:
> Surely the time for vocal opposition was _before_ voting closed? > > And I raised my opposition multiple times. That included one email where I laid out a case for why each reason listed for the RFC did not justify the major BC break. No one ever responded to even one of those points. > Peter > > On Wed, 24 Apr 2019 at 16:51, Chase Peeler <chasepee...@gmail.com> wrote: > >> On Wed, Apr 24, 2019 at 11:27 AM Stephen Reay <php-li...@koalephant.com> >> wrote: >> >> > >> > > On 24 Apr 2019, at 22:16, Chase Peeler <chasepee...@gmail.com> wrote: >> > > >> > > >> > > >> > > On Wed, Apr 24, 2019 at 11:02 AM Stephen Reay < >> php-li...@koalephant.com >> > <mailto:php-li...@koalephant.com>> wrote: >> > > >> > > > On 24 Apr 2019, at 21:35, Chase Peeler <chasepee...@gmail.com >> <mailto: >> > chasepee...@gmail.com>> wrote: >> > > > >> > > > If I get started now, maybe I can have everything fixed by the time >> > 8.1 is >> > > > released. >> > > >> > > >> > > Two characters less than this sentence of yours is a 1-liner find/sed >> > script to replace all `<? ` with `<?php `. >> > > Would you really feel confident doing a blind find/replace on 6,000+ >> > instances? >> > >> > It’s hardly “blind”. This is what version control is for. You make a >> > change, and then either view the diff locally, and/or commit/push it, >> and >> > ask others to help review the diff. >> > >> > I literally just ran the script referenced above on a client project, >> > eyeballed the diff, and committed the changes it made to a branch. Once >> I’m >> > not in the middle of anything I’ll review it again and then merge it. >> > >> > How big of a project? How many changes? You really think 6,787 changes >> among 1,656 files can just be eyeballed? >> >> >> > > >> > > what about <?if ... `<? ` wouldn't match that. I have instances of >> that >> > in my code, though. >> > >> > So change the pattern to replace `<?` followed by anything except an >> > equals sign. >> > >> > <?if => <?phpif wouldn't work. It would have to be <? that is not part >> of >> string (inside quotes, heredoc, etc). Even that could be a legitimate >> case, >> though, if something is using eval, god forbid. '<? ' can be a straight >> replacement with '<?php' but anything else '<?(?!php)' gets replaced with >> '<?php ' >> >> >> > > >> > > What if I utilize a 3rd party library that, while no longer support, >> > works fine, but is now broken for no other reason than the fact that <? >> is >> > no longer supported? Whether I should be using that library or not is >> > irrelevant. The fact is, I am, and the fact that I won't be able to use >> it >> > in 8.0 is a barrier to me upgrading. >> > > >> > >> > You do the same thing as if the library had a security issue or some >> other >> > bug. If it’s unsupported, you have to support it, or you have to find a >> > replacement. It’s not like you’re dealing with a compiled module that >> you >> > can’t edit. Run the same fix for short tags on the library. >> > >> > All valid options. Doesn't change the fact that it's more code to update >> meaning more time required to prepare for the upgrade. >> >> >> > > I don't trust mass find/replace tools like php-cs-fixer. Some of our >> > legacy code is really ugly. Auto-formatting with PhpStorm will break >> it. I >> > don't mind using an interactive tool, but that means I have to sit there >> > and hit Y or N for 6,787 instances. Some of them will probably require >> me >> > to actually open the file up and check out the surrounding context as >> well. >> > And, what happens if I miss one? I run the risk of code leak. >> > >> > If auto formatting ‘breaks’ your code, you have a bigger problem than >> > short tags. >> > >> > I never said that our code was good. Most of our legacy code isn't ever >> touched. It's a mess of 10k+ line spaghetti files. It works, and until we >> are able to replace it, we just leave it alone. Now we are forced to go in >> there and mess with it for something that doesn't even pertain to the >> functionality of our application. >> >> Also, you didn't address the issue of missed instances. There is no way to >> be 100% sure any automated or manual process of replacing the tags will >> get >> everything. One of the justifications for this RFC was the possibility of >> code leak if code with short tags is loaded in an environment that has >> short tags disabled. We've decided to fix that by making sure that any >> code >> with short tags will DEFINITELY leak code. That makes a lot of sense. >> Eyeballing a diff isn't going to help you find missed instances either. >> >> >> > > >> > > I think it's great that many of you have code bases that are in pretty >> > good shape and this change isn't going to have much of an impact on you. >> > That's not my case, though. It's not the case for a LOT of people. I'm >> not >> > against BC breaks - even major ones - if they are justified. I have yet >> to >> > see any good justifications for such a massive BC break. >> > > >> > > The fact is that this change WILL prevent a lot of people from being >> > able to upgrade to 8.0 in a timely manner. Anyone that has to justify >> > spending time to prepare for an upgrade to people that don't understand >> the >> > benefits of the upgrade will have an ever harder time trying to justify >> the >> > extra time necessary. I also think you are going to find a good number >> of >> > people that will upgrade (or use PHP for the first time) unaware of the >> > change. They'll attempt to load older code that has short tags in it. It >> > won't work. They'll say "screw it" and use python or node. >> > > -- >> > > Chase Peeler >> > > chasepee...@gmail.com <mailto:chasepee...@gmail.com> >> > >> > It's not that I'm against the idea of abolishing short tags. It's that I >> don't feel the problems abolishing them will cause are justified by the >> reasons given for abolishing them. No matter how easy you think it is to >> deal with this, it won't change the fact that it's going to be a barrier >> to >> upgrading for a lot of people. It's going to have a negative impact on 8.0 >> adoption. It's going to lead to a larger number of people running PHP >> versions that have reached EOL. In the end, it's going to hurt the market >> share and reputation of PHP. >> >> >> >> -- >> Chase Peeler >> chasepee...@gmail.com >> > -- Chase Peeler chasepee...@gmail.com