44 private $deploymentConfig;
54 private $phpReadinessCheck;
59 private $basePackageInfo;
84 $this->dbValidator = $dbValidator;
87 $this->phpReadinessCheck = $phpReadinessCheck;
88 $this->basePackageInfo = $basePackageInfo;
99 $resultJsonRawData = [self::KEY_READINESS_CHECKS => []];
100 $errorLogMessages = [];
103 $phpVersionCheckResult = $this->phpReadinessCheck->checkPhpVersion();
104 $errorMessage = $this->getPhpVersionCheckErrorLogMessage($phpVersionCheckResult);
105 if (!empty($errorMessage)) {
106 $errorLogMessages[] = $errorMessage;
110 $phpExtensionsCheckResult = $this->phpReadinessCheck->checkPhpExtensions();
111 $errorMessage = $this->getPhpExtensionsCheckErrorLogMessage($phpExtensionsCheckResult);
112 if (!empty($errorMessage)) {
113 $errorLogMessages[] = $errorMessage;
117 $phpSettingsCheckResult = $this->phpReadinessCheck->checkPhpCronSettings();
118 $errorMessage = $this->getPhpSettingsCheckErrorLogMessage($phpSettingsCheckResult);
119 if (!empty($errorMessage)) {
120 $errorLogMessages[] = $errorMessage;
128 $errorMessage = $this->performDBCheck();
129 if (empty($errorMessage)) {
134 $errorLogMessages[] = $errorMessage;
141 $filePaths = $this->basePackageInfo->getPaths();
144 $errorMessage = $e->getMessage();
146 $errorLogMessages[] = $errorMessage;
152 if ($write->isExist(self::SETUP_CRON_JOB_STATUS_FILE)) {
153 $jsonData = json_decode($write->readFile(self::SETUP_CRON_JOB_STATUS_FILE),
true);
154 if (isset($jsonData[self::KEY_CURRENT_TIMESTAMP])) {
161 $resultJson = json_encode($resultJsonRawData, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES);
162 $write->writeFile(self::SETUP_CRON_JOB_STATUS_FILE, $resultJson);
165 foreach ($errorLogMessages as $errorLog) {
168 return (empty($errorLogMessages));
177 private function getPhpVersionCheckErrorLogMessage($phpVersionCheckResult)
180 if (isset($phpVersionCheckResult[
'responseType']) &&
182 if (isset($phpVersionCheckResult[
'data'][
'message'])) {
183 $message = $phpVersionCheckResult[
'data'][
'message'];
185 $message =
'Minimum required version is' .
186 $phpVersionCheckResult[
'data'][
'required'] .
187 '. While your installed version is ' .
188 $phpVersionCheckResult[
'data'][
'current'] .
201 private function getPhpExtensionsCheckErrorLogMessage($phpExtensionsCheckResult)
204 if (isset($phpExtensionsCheckResult[
'responseType']) &&
206 if (isset($phpExtensionsCheckResult[
'data'][
'message'])) {
207 $message = $phpExtensionsCheckResult[
'data'][
'message'];
209 $message =
'Following required PHP extensions are missing:' .
212 implode(PHP_EOL .
"\t", $phpExtensionsCheckResult[
'data'][
'missing']);
224 private function getPhpSettingsCheckErrorLogMessage($phpSettingsCheckResult)
227 if (isset($phpSettingsCheckResult[
'responseType']) &&
229 foreach ($phpSettingsCheckResult[
'data'] as $valueArray) {
230 if ($valueArray[
'error'] ==
true) {
231 $messages[] = preg_replace(
'/\s+/S',
" ", $valueArray[
'message']);
235 return implode(PHP_EOL .
"\t", $messages);
243 private function performDBCheck()
245 $errorLogMessage =
'';
246 $dbInfo = $this->deploymentConfig->get(
250 $this->dbValidator->checkDatabaseConnection(
256 }
catch (\Exception $e) {
257 $errorLogMessage = $e->getMessage();
259 return $errorLogMessage;
const SETUP_CRON_JOB_STATUS_FILE
const CONFIG_PATH_DB_CONNECTION_DEFAULT
const KEY_CURRENT_TIMESTAMP
__construct(\Magento\Setup\Validator\DbValidator $dbValidator, \Magento\Framework\App\DeploymentConfig $deploymentConfig, \Magento\Framework\Filesystem $filesystem, \Magento\Setup\Model\PhpReadinessCheck $phpReadinessCheck, BasePackageInfo $basePackageInfo, Status $status)
const KEY_PHP_EXTENSIONS_VERIFIED
const KEY_PHP_VERSION_VERIFIED
const RESPONSE_TYPE_ERROR
const KEY_PHP_SETTINGS_VERIFIED
const KEY_READINESS_CHECKS
const KEY_DB_WRITE_PERMISSION_VERIFIED