On Wed, Aug 28, 2019 at 7:24 PM Lucas Werkmeister
<lucas.werkmeister(a)wikimedia.de> wrote:
As far as I can tell, it actually strips final tokens
from *any* PHP file
that’s read, including by application code.
Yes, but only if you turn it on, and we'd only turn it on for tests.
It seems to override the
standard PHP handler for the file:// protocol, and rely on the fact that
the PHP engine also uses that handler to read source code files.
I wonder how it interacts with an opcode cache. Is the cache going to
return the cached result based on mtime or whatever, meaning you'll
get a random mix of code with and without final and tests might fail
because they got a cached version of the file that wasn't
de-finalized? Or does it somehow know? (I don't see how it would.)
I filed an issue on this:
https://github.com/dg/bypass-finals/issues/12 Assuming it somehow
works with an opcode cache, it shouldn't have to be a huge performance
impact, because the files shouldn't be parsed often.