private function makeSureThereAreNoMissingRequirements($metadata) { $requires = array(); if (!empty($metadata->require)) { $requires = (array) $metadata->require; } $dependency = new PluginDependency(); $dependency->setEnvironment($this->marketplaceClient->getEnvironment()); $missingDependencies = $dependency->getMissingDependencies($requires); if (!empty($missingDependencies)) { $message = ''; foreach ($missingDependencies as $dep) { if (empty($dep['actualVersion'])) { $params = array(ucfirst($dep['requirement']), $dep['requiredVersion'], $metadata->name); $message .= Piwik::translate('CorePluginsAdmin_MissingRequirementsPleaseInstallNotice', $params); } else { $params = array(ucfirst($dep['requirement']), $dep['actualVersion'], $dep['requiredVersion']); $message .= Piwik::translate('CorePluginsAdmin_MissingRequirementsNotice', $params); } } throw new PluginInstallerException($message); } }