/** * @return array */ private function getConfig() { static $config; if ($config) { return $config; } $config = $this->config->get('prestissimo'); if (!is_array($config)) { $config = array(); } $config += array('maxConnections' => 6, 'minConnections' => 3, 'pipeline' => false, 'verbose' => false, 'insecure' => false, 'capath' => '', 'privatePackages' => array()); if (!is_int($config['maxConnections']) || $config['maxConnections'] < 1) { $config['maxConnections'] = 6; } if (!is_int($config['minConnections']) || $config['minConnections'] > $config['maxConnections']) { $config['minConnections'] = 3; } if (!is_bool($config['pipeline'])) { $config['pipeline'] = (bool) $config['pipeline']; } if (!is_bool($config['insecure'])) { $config['insecure'] = (bool) $config['insecure']; } if (!is_string($config['capath'])) { $config['capath'] = ''; } if (!is_array($config['privatePackages'])) { $config['privatePackages'] = (array) $config['privatePackages']; } return $config; }
/** * pre-fetch parallel by curl_multi */ public function onPostDependenciesSolving(Installer\InstallerEvent $ev) { $ops = $ev->getOperations(); $packages = $this->filterPackages($ops); $pluginConfig = $this->pluginConfig->get(); if (count($packages) >= $pluginConfig['minConnections']) { $downloader = new ParallelDownloader($this->io, $this->config); $downloader->download($packages, $pluginConfig); } }