1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- --TEST--
- Extension loading
- --SKIPIF--
- <?php
- $extDir = ini_get('extension_dir');
- if (!file_exists($extDir . '/opcache.so') && !file_exists($extDir . '/php_opcache.dll')) {
- die('skip Opcache shared object not found in extension_dir');
- }
- ?>
- --FILE--
- <?php
- function loadZendExt($extension) {
- $cmd = [
- PHP_BINARY, '-n',
- '-dextension_dir=' . ini_get('extension_dir'),
- '-dzend_extension=' . $extension,
- '-r', 'echo "Done.";'
- ];
- $proc = proc_open($cmd, [['null'], ['pipe', 'w'], ['redirect', 1]], $pipes);
- echo "Output: ", stream_get_contents($pipes[1]), "\n";
- }
- echo "Only extension name:\n";
- loadZendExt('opcache');
- echo "Name with file extension:\n";
- $name = PHP_OS_FAMILY == 'Windows' ? 'php_opcache.dll' : 'opcache.so';
- loadZendExt($name);
- echo "Absolute path:\n";
- $path = ini_get('extension_dir') . DIRECTORY_SEPARATOR . $name;
- loadZendExt($path);
- echo "Unknown extension name (unknown):\n";
- loadZendExt('unknown_ext');
- echo "Name with file extension (unknown):\n";
- $name = PHP_OS_FAMILY == 'Windows' ? 'php_unknown_ext.dll' : 'unknown_ext.so';
- loadZendExt($name);
- echo "Absolute path (unknown):\n";
- $path = ini_get('extension_dir') . DIRECTORY_SEPARATOR . $name;
- loadZendExt($path);
- ?>
- --EXPECTF--
- Only extension name:
- Output: Done.
- Name with file extension:
- Output: Done.
- Absolute path:
- Output: Done.
- Unknown extension name (unknown):
- Output:
- Warning: Failed loading Zend extension 'unknown_ext' (tried: %s) in Unknown on line 0
- Done.
- Name with file extension (unknown):
- Output:
- Warning: Failed loading Zend extension '%Sunknown_ext%S' (tried: %s) in Unknown on line 0
- Done.
- Absolute path (unknown):
- Output: Failed loading %s
- Done.
|