Как проверить, существует ли расширение PECL?

Как мне получить код PHP, если установлено расширение PECL?

Я хочу, чтобы обработать случай, когда расширение не установлено.

Solutions Collecting From Web of "Как проверить, существует ли расширение PECL?"

Я думаю, что обычным способом было бы использовать расширенную загрузку .

if (!extension_loaded('gd')) { // If you want to try load the extension at runtime, use this code: if (!dl('gd.so')) { exit; } } 

get_loaded_extensions подходит для счета.

Используйте следующее:

 $ext_loaded = in_array('redis', get_loaded_extensions(), true); 

Вы посмотрели на get_extension_funcs ?

Пара разных способов. Вы можете просто проверить наличие класса или даже функцию: class_exists , function_exists и get_extension_funcs :

 <?php if( class_exists( '\Memcached' ) ) { // Memcached class is installed } // I cant think of an example for `function_exists`, but same idea as above if( get_extension_funcs( 'memcached' ) === false ) { // Memcached isn't installed } 

Вы также можете получить супер сложный и использовать ReflectionExtension . Когда вы его создадите, он выкинет ReflectionException . Если он не генерирует исключение, вы можете проверить другие вещи о расширении (например, версию).

 <?php try { $extension = new \ReflectionExtension( 'memcached' ); } catch( \ReflectionException $e ) { // Extension Not loaded } if( $extension->getVersion() < 2 ) { // Extension is at least version 2 } else { // Extension is only version 1 }