Dlaczego nie można wrócić do trybu domyślnego w Magento 2?

32

Podczas programowania projektu Magento 2 przełączyłem się na tryb programisty, używając następującego polecenia:

php bin/magento deploy:mode:set developer

Wszystko dobrze, dostałem ten komunikat i dobrze opracowałem stronę:

Aktualny tryb aplikacji: programista.

Z niektórych powodów chciałem wrócić do defaulttrybu, aby sprawdzić zachowanie strony internetowej w tym trybie. Nie ma konkretnych powodów, by być szczerym, chciałem tylko wrócić do tego trybu.

Uruchomiłem więc następujące polecenie:

php bin/magento deploy:mode:set default

Ale dostałem ten dziwny błąd bez dalszych wyjaśnień:

Cannot switch into given mode "default"

Sprawdziłem następujący plik, który obsługuje ustawienia trybu Magento/Deploy/Console/Command/SetModeCommand.phpi oto, co znalazłem:

switch($toMode) {
    case State::MODE_DEVELOPER:
        $modeController->enableDeveloperMode();
        break;
    case State::MODE_PRODUCTION:
        if ($skipCompilation) {
            $modeController->enableProductionModeMinimal();
        } else {
            $modeController->enableProductionMode();
        }
        break;
    default:
        throw new LocalizedException(__('Cannot switch into given mode "%1"', $toMode));
}

Jak dziwne jest to, że Magento 2 jest dostarczany w trybie domyślnym, ale nie można wrócić do tego konkretnego trybu . Jaki jest tego powód?

Edycja: dla zainteresowanych stworzyłem problem na github: https://github.com/magento/magento2/issues/4292

Raphael at Digital Pianism
źródło
1
To bardzo dobre pytanie i zbieramy opinie, dlaczego chcesz używać trybu domyślnego, ale nie programisty. I wygląda na to, że definiujesz przyczynę jako „Brak konkretnych powodów”. Ale zgadzam się - musimy pozwolić na włączenie / wyłączenie trybu, ponieważ jest on domyślnie. W tej chwili mamy w zadaniu zaległości, aby dodać go w liście możliwych trybów.
maksek
6
Jednym z powodów może być to, że opracowałem rozszerzenie i niektórzy z moich klientów mogą pracować w trybie domyślnym
Kristof z Fooman

Odpowiedzi:

33

Domyślny tryb nie jest ani tu, ani tam.

przegląd trybu

Zespół Magento naprawdę chce, abyś używał trybu produkcyjnego w witrynie na żywo lub trybu programisty podczas programowania. Powodem, dla którego istnieje Tryb Domyślny, jest posiadanie czegoś, co przynajmniej działałoby rozsądnie po wdrożeniu bezpośrednio z pobranego kodu bez dalszej interwencji.

Po uruchomieniu php bin/magento deploy:mode:setzidentyfikowałeś się jako zdolny i nie wymagający trybu domyślnego. Ponieważ nie ma powodu, aby powracać do trybu domyślnego, Magento nie zapewnił Ci takiej możliwości.

Kristof w Fooman
źródło
6
Wiedziałem, że powinienem zrobić to zdjęcie. Nawiasem mówiąc, po mojej lewej stronie siedziałeś 5-6 krzeseł :)
Marius
1
Skończyło się tworzenie problemu: github.com/magento/magento2/issues/4292
Raphael at Digital Pianism
2
Powodem jest jeden głos przed tobą, ponieważ głosowałem na ciebie :).
Marius
3
Powodem, dla którego Marius jest w tyle, jest to, że go głosowałem :-P
philwinkle
3
Powodem, dla którego chce się wrócić do trybu „Domyślny”, jest wyraźnie to, że tryb „programisty” jest zbyt wolny. Testowanie strony jest ważną częścią rozwoju i nie należy jej spowalniać ani też konieczności pełnego wdrażania wszystkiego w trybie „produkcyjnym”. Jako programista wolałem raczej cierpieć z powodu wad „domyślnego” trybu niż zmuszać mnie do decydowania między „programistą” a „produkcją”
leedch
18

Domyślnym trybem jest tylko instalacja Magento 2.
Nie należy go używać do programowania ani produkcji.
Po instalacji możesz przełączać się między programatorem i prod.

Źródło: Alan Kent @ MagentoImagine2016

Marius
źródło
Skończyło się tworzenie problemu: github.com/magento/magento2/issues/4292
Raphael at Digital Pianism
10

Jako programista systemu Windows w trybie programisty Magento chce tworzyć dowiązania symboliczne do zasobów statycznych, ale używa polecenia Linux, a nie polecenia Windows. Powoduje to wiele błędów w plikach js i css.

Aby wrócić do trybu domyślnego, otwórz: -

app / etc / env.php

I zmień: -

„MAGE_MODE” => „programista”,

Wrócić do:-

„MAGE_MODE” => „default”,

I ponownie zainstaluj pliki statyczne.

Dallas Clarke
źródło
Uwaga: zmienne środowiskowe mogą zastąpić tę wartość.
Elzo Valugi,
1
Pamiętaj, że Magento oficjalnie nie obsługuje systemu Windows, więc próba programowania w systemie Windows może również powodować inne problemy.
ProcessEight
1

Pracowałem z tym samym problemem, ale zmiana w trybie env.phpręcznym działa.

Mohammad Mujassam
źródło
Tak, oczywiście, że wiem, że mógłbym to zrobić bezpośrednio. Właśnie zastanawiałem się, dlaczego nie jest to możliwe za pośrednictwem CLI
Raphael w Digital Pianism,
0

** ustaw tryb 2.3.x **

Teraz Magento pozwala nam wrócić do trybu domyślnego z 2.3.x.

Pavan U
źródło