public installExtension ( Extension $ext, array $options = [] ) | ||
$ext | Extension | |
$options | array |
public function installExtension(Extension $ext, array $options = array())
{
$this->disableExtension($ext);
$sourceDir = $ext->getSourceDirectory();
$name = $ext->getName();
if (!file_exists($sourceDir)) {
throw new Exception("Source directory {$sourceDir} does not exist.");
}
// Install local extension
$installer = new ExtensionInstaller($this->logger);
$this->logger->info("===> Installing {$name} extension...");
$this->logger->debug("Extension path {$sourceDir}");
// $installer->runInstall($name, $sourceDir, $options);
$installer->install($ext, $options);
$this->createExtensionConfig($ext);
$this->enableExtension($ext);
$this->logger->info('Done.');
return $sourceDir;
}
/** * @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()); }