/
githubmirror
/
magento2
Обзор
Документация
Войти
/
githubmirror
/
magento2
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
2.4-develop
lib/internal/Magento/Framework/App/Console/MaintenanceModeEnabler.php
96 строк
2 KB
Alexandra Zota
ACP2E-4019: CE copyright updates for 2.4.9-beta1
22 окт 2025, 17:47
22 окт 2025, 17:47
1b769b7
Код
Авторство
О чём код?
<?php /** * Copyright 2017 Adobe * All Rights Reserved. */ namespace Magento\Framework\App\Console; use Magento\Framework\App\MaintenanceMode; use Symfony\Component\Console\Output\OutputInterface; /** * Class MaintenanceModeEnabler * @package Magento\Framework\App\Console */ class MaintenanceModeEnabler { /** * @var MaintenanceMode */ private $maintenanceMode; /** * @var bool */ private $skipDisableMaintenanceMode; /** * @param MaintenanceMode $maintenanceMode */ public function __construct(MaintenanceMode $maintenanceMode) { $this->maintenanceMode = $maintenanceMode; } /** * Enable maintenance mode * * @param OutputInterface $output * @return void */ private function enableMaintenanceMode(OutputInterface $output) { if ($this->maintenanceMode->isOn()) { $this->skipDisableMaintenanceMode = true; $output->writeln('<info>Maintenance mode already enabled</info>'); return; } $this->maintenanceMode->set(true); $this->skipDisableMaintenanceMode = false; $output->writeln('<info>Enabling maintenance mode</info>'); } /** * Disable maintenance mode * * @param OutputInterface $output * @return void */ private function disableMaintenanceMode(OutputInterface $output) { if ($this->skipDisableMaintenanceMode) { $output->writeln('<info>Skipped disabling maintenance mode</info>'); return; } $this->maintenanceMode->set(false); $output->writeln('<info>Disabling maintenance mode</info>'); } /** * Run task in maintenance mode * * @param callable $task * @param OutputInterface $output * @param bool $holdMaintenanceOnFailure * @return mixed * @throws \Throwable if error occurred */ public function executeInMaintenanceMode(callable $task, OutputInterface $output, bool $holdMaintenanceOnFailure) { $this->enableMaintenanceMode($output); try { $result = call_user_func($task); } catch (\Throwable $e) { if (!$holdMaintenanceOnFailure) { $this->disableMaintenanceMode($output); } throw $e; } $this->disableMaintenanceMode($output); return $result; } }