public function execute() { $buildDir = Config::getCurrentBuildDir(); $extDir = $buildDir . DIRECTORY_SEPARATOR . 'ext'; // list for extensions which are not enabled $extensions = array(); $extensionNames = array(); // some extension source not in root directory $lookupDirectories = array('', 'ext', 'extension'); if (file_exists($extDir) && is_dir($extDir)) { $this->logger->debug("Scanning {$extDir}..."); foreach (scandir($extDir) as $extName) { if ($extName == "." || $extName == "..") { continue; } $dir = $extDir . DIRECTORY_SEPARATOR . $extName; foreach ($lookupDirectories as $lookupDirectory) { $extensionDir = $dir . (empty($lookupDirectory) ? '' : DIRECTORY_SEPARATOR . $lookupDirectory); if ($m4files = ExtensionFactory::configM4Exists($extensionDir)) { $this->logger->debug("Loading extension information {$extName} from {$extensionDir}"); foreach ($m4files as $m4file) { try { $ext = ExtensionFactory::createM4Extension($extName, $m4file); // $ext = ExtensionFactory::createFromDirectory($extName, $dir); $extensions[$ext->getExtensionName()] = $ext; $extensionNames[] = $extName; break; } catch (Exception $e) { } } break; } } } } $this->logger->info('Loaded extensions:'); foreach ($extensions as $extName => $ext) { if (extension_loaded($extName)) { $this->describeExtension($ext); } } $this->logger->info('Available local extensions:'); foreach ($extensions as $extName => $ext) { if (extension_loaded($extName)) { continue; } $this->describeExtension($ext); } }