Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Public Member Functions | Data Fields
SystemPackage Class Reference

Public Member Functions

 __construct (MagentoComposerApplicationFactory $composerAppFactory, ComposerInformation $composerInfo)
 
 getPackageVersions ()
 
 getAllowedEnterpriseVersions ($currentCE)
 
 getSystemPackageVersions ($systemPackageInfo)
 
 sortVersions ($enterpriseVersions)
 

Data Fields

const EDITION_COMMUNITY = 'magento/product-community-edition'
 
const EDITION_ENTERPRISE = 'magento/product-enterprise-edition'
 

Detailed Description

Class SystemPackage returns system package and available for update versions

Definition at line 17 of file SystemPackage.php.

Constructor & Destructor Documentation

◆ __construct()

__construct ( MagentoComposerApplicationFactory  $composerAppFactory,
ComposerInformation  $composerInfo 
)

Constructor

Parameters
MagentoComposerApplicationFactory$composerAppFactory
ComposerInformation$composerInfo

Definition at line 44 of file SystemPackage.php.

47  {
48  $this->infoCommand = $composerAppFactory->createInfoCommand();
49  $this->magentoComposerApplication = $composerAppFactory->create();
50  $this->composerInfo = $composerInfo;
51  }

Member Function Documentation

◆ getAllowedEnterpriseVersions()

getAllowedEnterpriseVersions (   $currentCE)

Retrieve allowed EE versions

Parameters
string$currentCE
Returns
array

Definition at line 102 of file SystemPackage.php.

103  {
104  $result = [];
105  $enterpriseVersions = $this->infoCommand->run(static::EDITION_ENTERPRISE);
106  $eeVersions = [];
107  $maxVersion = '';
108  if (is_array($enterpriseVersions) && array_key_exists(InfoCommand::AVAILABLE_VERSIONS, $enterpriseVersions)) {
109  $enterpriseVersions = $this->sortVersions($enterpriseVersions);
110  if (isset($enterpriseVersions[InfoCommand::AVAILABLE_VERSIONS][0])) {
111  $maxVersion = $enterpriseVersions[InfoCommand::AVAILABLE_VERSIONS][0];
112  }
113  $eeVersions = $this->filterEeVersions($currentCE, $enterpriseVersions, $maxVersion);
114  }
115 
116  if (!empty($eeVersions)) {
117  $result[] = [
118  'package' => static::EDITION_ENTERPRISE,
119  'versions' => $eeVersions,
120  ];
121  }
122  return $result;
123  }
sortVersions($enterpriseVersions)

◆ getPackageVersions()

getPackageVersions ( )

Returns system package and available versions

Exceptions

Definition at line 59 of file SystemPackage.php.

60  {
61  $currentCE = '0';
62 
63  $result = [];
64  $systemPackages = $this->getInstalledSystemPackages();
65  foreach ($systemPackages as $systemPackage) {
66  $systemPackageInfo = $this->infoCommand->run($systemPackage);
67  if (!$systemPackageInfo) {
68  throw new \RuntimeException("We cannot retrieve information on $systemPackage.");
69  }
70 
71  $versions = $this->getSystemPackageVersions($systemPackageInfo);
72 
73  if ($systemPackageInfo['name'] == static::EDITION_COMMUNITY) {
74  $currentCE = $systemPackageInfo[InfoCommand::CURRENT_VERSION];
75  }
76 
77  if (count($versions) > 1) {
78  $versions[0]['name'] .= ' (latest)';
79  }
80 
81  $result[] = [
82  'package' => $systemPackageInfo['name'],
83  'versions' => $versions,
84  ];
85  }
86 
87  if (!in_array(static::EDITION_ENTERPRISE, $systemPackages)) {
88  $result = array_merge($this->getAllowedEnterpriseVersions($currentCE), $result);
89  }
90 
91  $result = $this->formatPackages($result);
92 
93  return $result;
94  }
getSystemPackageVersions($systemPackageInfo)

◆ getSystemPackageVersions()

getSystemPackageVersions (   $systemPackageInfo)

Retrieve package versions

Parameters
array$systemPackageInfo
Returns
array

Definition at line 131 of file SystemPackage.php.

132  {
133  $editionType = '';
134  $versions = [];
135 
136  if ($systemPackageInfo['name'] == static::EDITION_COMMUNITY) {
137  $editionType .= 'CE';
138  } elseif ($systemPackageInfo['name'] == static::EDITION_ENTERPRISE) {
139  $editionType .= 'EE';
140  }
141 
142  foreach ($systemPackageInfo[InfoCommand::NEW_VERSIONS] as $version) {
143  $versions[] = ['id' => $version, 'name' => 'Version ' . $version . ' ' . $editionType, 'current' => false];
144  }
145 
146  if ($systemPackageInfo[InfoCommand::CURRENT_VERSION]) {
147  $versions[] = [
148  'id' => $systemPackageInfo[InfoCommand::CURRENT_VERSION],
149  'name' => 'Version ' . $systemPackageInfo[InfoCommand::CURRENT_VERSION] . ' ' . $editionType,
150  'current' => true,
151  ];
152  }
153  return $versions;
154  }
elseif(isset( $params[ 'redirect_parent']))
Definition: iframe.phtml:17

◆ sortVersions()

sortVersions (   $enterpriseVersions)
Parameters
array$enterpriseVersions
Returns
array

Definition at line 193 of file SystemPackage.php.

194  {
195  usort($enterpriseVersions[InfoCommand::AVAILABLE_VERSIONS], function ($versionOne, $versionTwo) {
196  if (version_compare($versionOne, $versionTwo, '==')) {
197  return 0;
198  }
199  return (version_compare($versionOne, $versionTwo, '<')) ? 1 : -1;
200  });
201 
202  return $enterpriseVersions;
203  }

Field Documentation

◆ EDITION_COMMUNITY

const EDITION_COMMUNITY = 'magento/product-community-edition'

Definition at line 34 of file SystemPackage.php.

◆ EDITION_ENTERPRISE

const EDITION_ENTERPRISE = 'magento/product-enterprise-edition'

Definition at line 36 of file SystemPackage.php.


The documentation for this class was generated from the following file: