public static function lookup($packageName, array $lookupDirectories = array(), $fallback = true)
{
if ($fallback) {
// Always push the PHP source directory to the end of the list for the fallback.
$lookupDirectories[] = Config::getBuildDir() . '/' . Config::getCurrentPhpName() . '/ext';
}
foreach ($lookupDirectories as $lookupDir) {
if (!file_exists($lookupDir)) {
continue;
}
$extensionDir = $lookupDir . DIRECTORY_SEPARATOR . $packageName;
if ($ext = self::createFromDirectory($packageName, $extensionDir)) {
return $ext;
}
}
return new Extension($packageName);
}
/** * @dataProvider packageNameProvider */ public function testInstallPackages($extensionName, $extensionVersion = 'latest') { $logger = new Logger(); $logger->setDebug(); $manager = new ExtensionManager($logger); $peclProvider = new PeclProvider(); $downloader = new ExtensionDownloader($logger, new OptionResult()); $peclProvider->setPackageName($extensionName); $downloader->download($peclProvider, $extensionVersion); $ext = ExtensionFactory::lookup($extensionName); $this->assertNotNull($ext); $manager->installExtension($ext, array()); }