require_once __DIR__ . '/../app/autoload.php'; // check for installed system $paramFile = __DIR__ . '/../app/config/parameters.yml'; if (file_exists($paramFile)) { $data = Yaml::parse($paramFile); if (is_array($data) && isset($data['parameters']) && isset($data['parameters']['installed']) && false != $data['parameters']['installed']) { exit('DiamanteDesk is already installed.'); } } /** * @todo Identify correct locale (headers?) */ $locale = 'en'; $collection = new DiamanteDeskRequirements(); $translator = new Translator($locale); $majorProblems = $collection->getFailedRequirements(); $minorProblems = $collection->getFailedRecommendations(); $translator->addLoader('yml', new YamlFileLoader()); $translator->addResource('yml', __DIR__ . '/../app/Resources/translations/install.' . $locale . '.yml', $locale); function iterateRequirements(array $collection) { foreach ($collection as $requirement) { ?> <tr> <td class="dark"> <?php if ($requirement->isFulfilled()) { ?> <span class="icon-yes"> <?php } elseif (!$requirement->isOptional()) {
/** * @param OutputInterface $output * * @return $this * @throws \RuntimeException */ protected function checkRequirementsStep(OutputInterface $output) { $output->writeln('<info>Requirements check:</info>'); if (!class_exists('DiamanteDeskRequirements')) { require_once $this->getContainer()->getParameter('kernel.root_dir') . DIRECTORY_SEPARATOR . 'DiamanteDeskRequirements.php'; } $collection = new \DiamanteDeskRequirements(); $this->renderTable($collection->getMandatoryRequirements(), 'Mandatory requirements', $output); $this->renderTable($collection->getPhpIniRequirements(), 'PHP settings', $output); $this->renderTable($collection->getOroRequirements(), 'Oro specific requirements', $output); $this->renderTable($collection->getDiamanteDeskRequirements(), 'DiamanteDesk requirements', $output); $this->renderTable($collection->getRecommendations(), 'Optional recommendations', $output); if (count($collection->getFailedRequirements())) { throw new \RuntimeException('Some system requirements are not fulfilled. Please check output messages and fix them.'); } $output->writeln(''); return $this; }