28 private $dbVersionInfo;
37 $this->dbVersionInfo = $dbVersionInfo;
52 if (!$this->cache->load(
'db_is_up_to_date')) {
53 list($versionTooLowErrors, $versionTooHighErrors) = array_values($this->getGroupedDbVersionErrors());
54 if ($versionTooHighErrors) {
55 $message =
'Please update your modules: ' 56 .
"Run \"composer install\" from the Magento root directory.\n" 57 .
"The following modules are outdated:\n%1";
59 new Phrase(
$message, [implode(
"\n", $this->formatVersionTooHighErrors($versionTooHighErrors))])
61 }
elseif ($versionTooLowErrors) {
62 $message =
'Please upgrade your database: ' 63 .
"Run \"bin/magento setup:upgrade\" from the Magento root directory.\n" 64 .
"The following modules are outdated:\n%1";
67 new Phrase(
$message, [implode(
"\n", $this->formatVersionTooLowErrors($versionTooLowErrors))])
70 $this->cache->save(
'true',
'db_is_up_to_date');
81 private function formatVersionTooLowErrors($errorsData)
83 $formattedErrors = [];
85 foreach ($errorsData as $error) {
91 return $formattedErrors;
100 private function formatVersionTooHighErrors($errorsData)
102 $formattedErrors = [];
103 foreach ($errorsData as $error) {
109 return $formattedErrors;
117 private function getGroupedDbVersionErrors()
119 $allDbVersionErrors = $this->dbVersionInfo->getDbVersionErrors();
121 (array)$allDbVersionErrors,
122 function ($carry,
$item) {
126 $carry[
'version_too_low'][] =
$item;
128 $carry[
'version_too_high'][] =
$item;
133 'version_too_low' => [],
134 'version_too_high' => [],
elseif(isset( $params[ 'redirect_parent']))
__construct(FrontendCacheInterface $cache, DbVersionInfo $dbVersionInfo)
beforeDispatch(FrontController $subject, RequestInterface $request)