10 use Zend\Mvc\Controller\AbstractActionController;
11 use Zend\View\Model\JsonModel;
21 private $composerInformation;
34 \
Magento\Framework\Composer\MagentoComposerApplicationFactory $magentoComposerApplicationFactory
36 $this->composerInformation = $composerInformation;
37 $this->infoCommand = $magentoComposerApplicationFactory->createInfoCommand();
47 $view = new \Zend\View\Model\ViewModel;
48 $view->setTemplate(
'/error/404.phtml');
49 $this->getResponse()->setStatusCode(\
Zend\Http\Response::STATUS_CODE_404);
62 $components = $this->composerInformation->getInstalledMagentoPackages();
63 foreach ($components as $component) {
64 if (!$this->composerInformation->isPackageInComposerJson($component[
'name'])) {
65 unset($components[$component[
'name']]);
68 $componentNameParts = explode(
'/', $component[
'name']);
69 $packageInfo = $this->infoCommand->run($component[
'name']);
71 throw new \RuntimeException(
'Package info not found for ' . $component[
'name']);
75 $components[$component[
'name']][
'version'] = $currentVersion;
85 $versions[0][
'name'] .=
' (latest)';
86 $versions[count($versions) - 1][
'name'] .=
' (current)';
88 $components[$component[
'name']][
'vendor'] = $componentNameParts[0];
89 $components[$component[
'name']][
'updates'] = $versions;
90 $components[$component[
'name']][
'dropdownId'] =
'dd_' . $component[
'name'];
91 $components[$component[
'name']][
'checkboxId'] =
'cb_' . $component[
'name'];
93 unset($components[$component[
'name']]);
98 'components' => array_values($components),
99 'total' => count($components),
104 return new JsonModel(
const RESPONSE_TYPE_SUCCESS
const RESPONSE_TYPE_ERROR
__construct(\Magento\Framework\Composer\ComposerInformation $composerInformation, \Magento\Framework\Composer\MagentoComposerApplicationFactory $magentoComposerApplicationFactory)