Hi Guys,
I have a doubt, is it efficient include/require files from a source
different than the "real file system" a stream wrapper class? My
question is, would the op-code cache work as it would when reading a
file form the filesystem?
Cheers,
--
César D. Rodas
Open Source developer
+595-983-161124
PGP: F9ED A265 A3AB C8A1 D145 7368 158A 0336 C707 0AA6
Hi Guys,
I have a doubt, is it efficient include/require files from a source
different than the "real file system" a stream wrapper class? My
question is, would the op-code cache work as it would when reading a
file form the filesystem?
Do you mean if you `include 'mystream://something.php'; ?
Interesting question. I'd like to think that when opcache tries to
stat the file that streamWrapper::url_stat is called, and keeping the
mtime the same will cause the cached version to be used.
Really no idea though, I'd like to know the answer too.
Hi Guys,
I have a doubt, is it efficient include/require files from a source
different than the "real file system" a stream wrapper class? My
question is, would the op-code cache work as it would when reading a
file form the filesystem?Do you mean if you `include 'mystream://something.php'; ?
Yes, that's exactly what I tried to ask!
Interesting question. I'd like to think that when opcache tries to
stat the file that streamWrapper::url_stat is called, and keeping the
mtime the same will cause the cached version to be used.Really no idea though, I'd like to know the answer too.
Let's wait then!
Cheers,
--
César D. Rodas
Open Source developer
+595-983-161124
PGP: F9ED A265 A3AB C8A1 D145 7368 158A 0336 C707 0AA6
Hi Cesar,
Hi Guys,
I have a doubt, is it efficient include/require files from a source
different than the "real file system" a stream wrapper class? My
question is, would the op-code cache work as it would when reading a
file form the filesystem?
Yes it works if you are using 'phar' stream wrapper, the rest wrappers are
not cached,
@see
https://github.com/php/php-src/blob/master/ext/opcache/ZendAccelerator.c#L138-L142
This RFC: https://wiki.php.net/rfc/streams-is-cacheable is aim to remove
the restriction and allow stream wrapper itself to decide should it been
cached by opcache.
Cheers,
--
César D. Rodas
Open Source developer
+595-983-161124
PGP: F9ED A265 A3AB C8A1 D145 7368 158A 0336 C707 0AA6
De : Cesar Rodas [mailto:cesar@rodas.me]
I have a doubt, is it efficient include/require files from a source
different than the "real file system" a stream wrapper class? My
question is, would the op-code cache work as it would when reading a
file form the filesystem?
I understand your question but, yes, the feature is essential to packages systems like phar and phk (and it is useless for most other stream wrappers). Package systems distribute a virtual file tree, handle stat()
, and returning valid mtimes. So, the opcode cache must be able to work with these stream wrappers.
Regards
François
De : Cesar Rodas [mailto:cesar@rodas.me]
I have a doubt, is it efficient include/require files from a source
different than the "real file system" a stream wrapper class? My
question is, would the op-code cache work as it would when reading a
file form the filesystem?
I understand your question but, yes, the feature is essential to packages systems like phar and phk (and it is useless for most other stream wrappers). Package systems distribute a virtual file tree, handlestat()
, and returning valid mtimes. So, the opcode cache must be able to work with these stream wrappers.
I'm working on a project to put all generated code inside a single
file (and expose through "generated://doctrine" or
"generated://<package-name>") but it's pointless if the compiled op-code
is not cached :-(
I believe this https://wiki.php.net/rfc/streams-is-cacheable would be
brilliant!
Cheers,
Regards
François
--
César D. Rodas
Open Source developer
+595-983-161124
PGP: F9ED A265 A3AB C8A1 D145 7368 158A 0336 C707 0AA6