diff --git a/lib/SP/Core/PhpModuleChecker.php b/lib/SP/Core/PhpModuleChecker.php new file mode 100644 index 00000000..f6bae8c2 --- /dev/null +++ b/lib/SP/Core/PhpModuleChecker.php @@ -0,0 +1,87 @@ +. + */ + +namespace SP\Core; + +/** + * Class PhpModuleChecker + * @package SP\Core + */ +class PhpModuleChecker +{ + const MODULES = [ + 'ldap', + 'curl', + 'simplexml', + 'phar', + 'json', + 'xml', + 'pdo', + 'zlib', + 'gettext', + 'openssl', + 'pcre', + 'session', + 'mcrypt', + 'gd', + 'mbstring' + ]; + + /** + * Missing modules + * + * @var array + */ + protected $missing; + + /** + * PhpModuleChecker constructor. + */ + public function __construct() + { + $this->checkModules(); + } + + /** + * Check for missing modules + */ + public function checkModules() + { + $loaded = get_loaded_extensions(); + + $this->missing = array_filter(self::MODULES, function ($module) use ($loaded) { + return !in_array($module, $loaded); + }); + } + + /** + * Comprobar si el módulo de LDAP está instalado. + * + * @return bool + */ + public function ldapIsAvailable() + { + return extension_loaded('ldap'); + } +} \ No newline at end of file