On Jan 10, 2015 6:55 PM, "François Laupretre" <franc...@tekwire.net> wrote:
>
> > De : Pierre Joye [mailto:pierre....@gmail.com]
> >
> > A proof of concept, IRC log, I am lazy :)
> >
> > <Pierre> benjamin, Derick
> > https://gist.github.com/pierrejoye/ce4867a5eaabffa71df4
> > https://gist.github.com/pierrejoye/0859e3702ceb3bb652b6
> > https://gist.github.com/pierrejoye/544e60d8994094c55583
> > <Pierre> too slow internet for a fork & PR
> > <Pierre> but it works now. Add PHP_BUILTIN_SCRIPT(date,
> > PHP_EXT_DIR(date)/date.php) to config.m4, and call manually
> > zend_execute_script in RINIT, could be easier to do it in a register
> > function, inside MINIT and let the engine do it on RINIT, actually
> > cleaner, but this patch is only a prrof of concept to play with
>
> Thanks for this. I thought you were opposed to bundling PHP code in
extension... :)

Does not mean I cannot help to have a base to discuss.

> I prefer the solution where the extension execute the script(s) in RINIT
or at any time, instead of registering scripts in the core and let the core
trigger script execution. The main reason is that executing EVERY scripts
in RINIT is just one use case among many others.

It will remain in RINIT, it simply could be calls e by the engine
automatically. That would allow running order too.

> The problem I see with zend_execute_string() is the relationship with
opcode caches, because the filename you provide is not a real filename.
When an opcode cache receives such a name, it will analyze it as a valid
plain file name and it will try to stat() it for mtime, which will probably
fail... Actually, the opcode cache has no way to understand what's going on
here. That's why I proposed to use a stream-wrapper. It would imply a
registration mechanism to ensure path unicity but it would allow opcode
caching. And opcode caching is most important here, especially for code
executed systematically at RINIT time.

Opcache is why I think we should have a list registered names. A simple
hash exists and the cache will know what to do.

> Cheers
>
> François
>
>

Reply via email to