Pourquoi ne pouvons-nous pas revenir au mode par défaut sur Magento 2?

32

Je suis donc passé en mode développeur lors du développement d'un projet Magento 2 à l'aide de la commande suivante:

php bin/magento deploy:mode:set developer

Tout va bien, j'ai reçu ce message et j'ai bien développé le site:

Mode d'application actuel: développeur.

Pour certaines raisons, je voulais revenir au defaultmode simplement pour vérifier le comportement du site Web dans ce mode. Pas de raisons spécifiques pour être honnête, je voulais juste revenir à ce mode.

J'ai donc lancé la commande suivante:

php bin/magento deploy:mode:set default

Mais j'ai eu cette erreur bizarre sans plus d'explications:

Cannot switch into given mode "default"

J'ai vérifié le fichier suivant qui gère les paramètres de mode Magento/Deploy/Console/Command/SetModeCommand.phpet voici ce que j'ai trouvé:

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));
}

C'est bizarre, Magento 2 est livré en mode par défaut, mais vous ne pouvez pas revenir à ce mode spécifique . Quelle est la raison derrière cela?

Edit: pour ceux que ça intéresse, j'ai fini par créer un problème sur github: https://github.com/magento/magento2/issues/4292.

Raphael au pianisme numérique
la source
1
C’est une très bonne question, et nous avons recueilli les retours d’informations sur la raison pour laquelle vous voudriez utiliser le mode par défaut, mais pas le développeur. Et vous semblez définir la raison comme "Aucune raison spécifique". Mais je suis d'accord - nous devons permettre d'activer / désactiver le mode, car il est par défaut. À l'heure actuelle, nous avons dans notre tâche en attente de l'ajouter dans la liste des modes possibles.
Maksek
6
Une des raisons serait: j'ai développé une extension et certains de mes clients peuvent fonctionner en mode par défaut
Kristof à Fooman

Réponses:

33

Le mode par défaut n'est ni ici ni là-bas.

aperçu du mode

L’équipe de Magento souhaite vraiment que vous utilisiez le mode de production sur votre site actif ou le mode développeur au cours du développement. La raison pour laquelle le mode par défaut existe est d’avoir quelque chose qui fonctionnerait au moins de manière raisonnable s’il était déployé directement à partir du code téléchargé sans autre intervention.

En cours d'exécution, php bin/magento deploy:mode:setvous vous êtes identifié comme étant capable et n'ayant pas besoin du mode par défaut. Comme il n’ya aucune raison de revenir au mode par défaut, Magento ne vous a pas fourni le moyen de le faire.

Kristof chez Fooman
la source
6
Je savais que j'aurais dû prendre cette photo. Au fait, vous étiez assis 5-6 chaises à ma gauche :)
Marius
1
Nous avons
Raphael au Digital Pianism
2
Si vous avez un vote d'avance, c'est parce que je vous ai voté :).
Marius
3
La raison pour laquelle Marius est derrière, c'est que je l'ai échangé dessus :-P
philwinkle
3
La raison pour laquelle on souhaite revenir au mode "Par défaut" est clairement due au fait que le mode "développeur" est trop lent. Le test de votre page est une partie importante du développement et ne doit pas être ralenti ni avoir besoin de tout déployer en mode "production". En tant que développeur, j'ai plutôt choisi de subir les inconvénients du mode "par défaut" plutôt que d'être obligé de choisir entre "développeur" et "production"
leedch
18

Le mode par défaut n’est là que pour installer Magento 2.
Il ne doit pas être utilisé pour le développement ou la production.
Après l'installation, vous ne pouvez basculer qu'entre dev et prod.

Source: Alan Kent @ MagentoImagine2016

Marius
la source
Nous avons
Raphael au Digital Pianism
10

En tant que développeur Windows, en mode développeur, Magento souhaite créer des liens symboliques vers les actifs statiques, mais utilise la commande Linux et non la commande windows. Cela crée beaucoup d’erreurs dans les fichiers js et css.

Pour revenir au mode par défaut, ouvrez: -

app / etc / env.php

Et changer: -

'MAGE_MODE' => 'développeur',

Retour à:-

'MAGE_MODE' => 'default',

Et redéployez à nouveau les fichiers statiques.

Dallas Clarke
la source
Remarque: Les variables d'environnement peuvent remplacer cette valeur.
Elzo Valugi
1
Notez que Magento ne prend pas officiellement en charge Windows. Par conséquent, le fait de développer Windows pourrait également engendrer d'autres problèmes.
ProcessEight
1

J'ai couru avec le même problème, mais le changer env.phpmanuellement fonctionne.

Mohammad Mujassam
la source
Oui, bien sûr, je sais que je pourrais le faire directement. Je me demandais simplement pourquoi ce n'est pas possible via l'interface de ligne de commande
Raphael au Pianisme numérique.
0

** définir le mode 2.3.x **

Maintenant, Magento nous permet de revenir au mode par défaut à partir de 2.3.x

Pavan U
la source