On Mon, Nov 28, 2011 at 2:44 PM, Derick Rethans <der...@php.net> wrote:

> On Mon, 28 Nov 2011, Richard Quadling wrote:
>
> > On 28 November 2011 13:36, Derick Rethans <der...@php.net> wrote:
> > > On Mon, 28 Nov 2011, Ferenc Kovacs wrote:
> > >
> > >> On Mon, Nov 28, 2011 at 2:11 PM, Derick Rethans <der...@php.net>
> wrote:
> > >>
> > >> > I'm currently writing a shared extension thta depends on another
> > >> > shared extension (igbinary). "make test" doesn't handle this at the
> > >> > moment, because it removes every extension= line from it's temporary
> > >> > php.ini. This means that the dependent extension (igbinary) now
> > >> > isn't loaded, which means my extension doesn't load either and
> > >> > obviously all the tests fail.
> > >> >
> > >> > I've attached a patch that adds a new --EXTENSIONS-- section to the
> > >> > PHPT format. The run-tests.php script makes sure that all extensions
> > >> > in that last are added to the PHP command with -dextension=... , but
> > >> > only if they're not build in (or already loaded in some other way).
> > >> >
> > >> > The patch is simple, and it doesn't touch any other section or
> > >> > functionality so I'm suggesting to commit it to PHP 5.3/5.4 and
> > >> > trunk some time soon.
> > >>
> > >> wouldn't  --INI-- + extension do the same?
> > >
> > > No, as the run-tests.php framework changes "extension_dir" to
> > > "./modules/". It would also cause issues if you try to load an
> extension
> > > that is built-in. And it's not portable because not on every platform
> > > the extension name = extension.so
> >
> > Can you use PHP_SHLIB_SUFFIX?
>
> I am using that in my patch, but obviously that doesn't work with
> extension= on the command line, which is how run-tests.php passes in
> arguments from --INI--.
>
> derick@whisky:~$ php -dextension=igbinary.PHP_SHLIB_SUFFIX
> PHP Warning:  PHP Startup: Unable to load dynamic library
> '/usr/local/php/5.3dev/lib/php/extensions/debug-non-zts-20090626/igbinary.PHP_SHLIB_SUFFIX'
> -
> /usr/local/php/5.3dev/lib/php/extensions/debug-non-zts-20090626/igbinary.PHP_SHLIB_SUFFIX:
> cannot open shared object file: No such file or directory in Unknown on
> line 0


thanks for the answer, in this case I think this would be a worthwhile
improvement.

+ foreach ($extensions as $req_ext) {
+ $loaded = `$php -n -r 'echo (int) extension_loaded("$req_ext");'`;
+ if ($loaded == '0') {

it would be more efficient to get all the loaded modules at
once(get_loaded_extensions or php -m)

-- 
Ferenc Kovács
@Tyr43l - http://tyrael.hu

Reply via email to