Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
InstallExtensionGrid.php
Go to the documentation of this file.
1 <?php
8 
9 use Zend\Mvc\Controller\AbstractActionController;
10 use Zend\View\Model\JsonModel;
11 use Zend\View\Model\ViewModel;
13 
17 class InstallExtensionGrid extends AbstractActionController
18 {
22  private $packagesData;
23 
27  public function __construct(
28  PackagesData $packagesData
29  ) {
30  $this->packagesData = $packagesData;
31  }
32 
38  public function indexAction()
39  {
40  $view = new ViewModel();
41  $view->setTerminal(true);
42  return $view;
43  }
44 
50  public function extensionsAction()
51  {
52  $extensions = $this->packagesData->getPackagesForInstall();
53  $packages = isset($extensions['packages']) ? $extensions['packages'] : [];
54  $packages = $this->formatPackageList($packages);
55 
56  return new JsonModel(
57  [
58  'success' => true,
59  'extensions' => array_values($packages),
60  'total' => count($packages)
61  ]
62  );
63  }
64 
71  private function formatPackageList(array $packages)
72  {
73  array_walk($packages, function (&$package) {
74  $package['vendor'] = ucfirst($package['vendor']);
75  });
76 
77  return $packages;
78  }
79 }