From ba219b84c7fbf62825d1c35fd3a2ae73226955ac Mon Sep 17 00:00:00 2001 From: Etty <vishnu96vishnu@gmail.com> Date: Fri, 15 Dec 2017 17:08:54 +0200 Subject: [PATCH] magento/magento2#4292: Ability to sitch to default mode - mode can be switched back to default w/o throving an error --- .../Deploy/Console/Command/SetModeCommand.php | 3 +++ app/code/Magento/Deploy/Model/Mode.php | 19 +++++++++++++++++++ .../Console/Command/SetModeCommandTest.php | 12 ++++++++++++ 3 files changed, 34 insertions(+) diff --git a/app/code/Magento/Deploy/Console/Command/SetModeCommand.php b/app/code/Magento/Deploy/Console/Command/SetModeCommand.php index c4485656fb8..55b4a4f4f9b 100644 --- a/app/code/Magento/Deploy/Console/Command/SetModeCommand.php +++ b/app/code/Magento/Deploy/Console/Command/SetModeCommand.php @@ -101,6 +101,9 @@ class SetModeCommand extends Command $modeController->enableProductionMode(); } break; + case State::MODE_DEFAULT: + $modeController->enableDefaultMode(); + break; default: throw new LocalizedException(__('Cannot switch into given mode "%1"', $toMode)); } diff --git a/app/code/Magento/Deploy/Model/Mode.php b/app/code/Magento/Deploy/Model/Mode.php index 3810ef09531..792ee7f1b79 100644 --- a/app/code/Magento/Deploy/Model/Mode.php +++ b/app/code/Magento/Deploy/Model/Mode.php @@ -177,6 +177,25 @@ class Mode $this->setStoreMode(State::MODE_DEVELOPER); } + /** + * Enable Default mode + * + * @return void + */ + public function enableDefaultMode() + { + $this->filesystem->cleanupFilesystem( + [ + DirectoryList::CACHE, + DirectoryList::GENERATED_CODE, + DirectoryList::GENERATED_METADATA, + DirectoryList::TMP_MATERIALIZATION_DIR, + DirectoryList::STATIC_VIEW, + ] + ); + $this->setStoreMode(State::MODE_DEFAULT); + } + /** * Get current mode information * diff --git a/app/code/Magento/Deploy/Test/Unit/Console/Command/SetModeCommandTest.php b/app/code/Magento/Deploy/Test/Unit/Console/Command/SetModeCommandTest.php index caa310535f3..a49bae655e8 100644 --- a/app/code/Magento/Deploy/Test/Unit/Console/Command/SetModeCommandTest.php +++ b/app/code/Magento/Deploy/Test/Unit/Console/Command/SetModeCommandTest.php @@ -67,6 +67,18 @@ class SetModeCommandTest extends \PHPUnit\Framework\TestCase ); } + public function testSetDefaultMode() + { + $this->modeMock->expects($this->once())->method('enableDefaultMode'); + + $tester = new CommandTester($this->command); + $tester->execute(['mode' => 'default']); + $this->assertContains( + "default mode", + $tester->getDisplay() + ); + } + public function testSetProductionSkipCompilation() { $this->modeMock->expects($this->once())->method('enableProductionModeMinimal'); -- GitLab