Re: cvs: ZendEngine2(PHP_5_3) / zend.c zend.h zend_vm_def.h zend_vm_execute.h php-src NEWS php-src/main fopen_wrappers.c fopen_wrappers.h main.c

From: Date: Wed, 05 Mar 2008 20:24:39 +0000
Subject: Re: cvs: ZendEngine2(PHP_5_3) / zend.c zend.h zend_vm_def.h zend_vm_execute.h php-src NEWS php-src/main fopen_wrappers.c fopen_wrappers.h main.c
References: 1  Groups: php.internals 
Request: Send a blank email to internals+get-35980@lists.php.net to get a copy of this message
Dmitry Stogov wrote: > dmitry Wed Mar 5 13:34:16 2008 UTC > > Modified files: (Branch: PHP_5_3) > /php-src NEWS > /php-src/main fopen_wrappers.c fopen_wrappers.h main.c > /ZendEngine2 zend.c zend.h zend_vm_def.h zend_vm_execute.h > Log: > Optimized require_once() and include_once() by eliminationg open() syscall on second usage. Hi Dmitry, This is a very nice addition - I wonder if you might be interested in a patch to enable stream wrappers in include_path? There are a couple of ways this could be done, but the one I think would be best is checking for "//" immediately following ":" and then attempting to locate a stream wrapper, and if not found then shunt to the current realpath/fopen behavior. I'm already implementing this kind of thing already inside pecl/phar, it would be trivial to provide a patch and a few tests. The only question is whether this would be better resolved by simply intercepting zend_resolve_path inside pecl/phar, because include_path scanning may be significantly slower if we have to check for all possible stream wrappers and the requisite security checks for url-based wrappers. Checking for phar is very efficient as I've currently implemented it (have not yet committed, there are a few tests to be written/details to perfect), and doesn't open the door for shoot-yourself-in-the-foot security issues since all phar archives must be local on-disk. Thanks, Greg

« previous php.internals (#35980) next »