Présentation de l’initialisation et de l’amorçage

Pour exécuter l’application Commerce, les actions suivantes sont implémentées dans pub/index.php :

Logique d’exécution du Bootstrap

L’objet bootstrap utilise l’algorithme suivant pour exécuter l’application Commerce :

  1. Initialise le gestionnaire d’erreurs.

  2. Crée le gestionnaire d’objets et les services partagés de base qui sont utilisés partout et qui sont affectés par l’environnement. Les paramètres d’environnement sont correctement injectés dans ces objets.

  3. Affirme que le mode de maintenance n’est pas activé ; dans le cas contraire, il s’arrête.

  4. Affirme que l’application Commerce est installée ; dans le cas contraire, elle s’arrête.

  5. Démarre l’application Commerce.

    Toute exception non interceptée au lancement de l’application est automatiquement retransmise à Commerce dans la méthode catchException() que vous pouvez utiliser pour gérer l’exception. Ce dernier doit renvoyer true ou false :

    • Si true : Commerce a géré l’exception avec succès. Pas besoin de faire quoi que ce soit d'autre.
    • Si false : (ou tout autre résultat vide) Commerce ne gérait pas l’exception. L’objet bootstrap exécute la sous-routine de gestion des exceptions par défaut.
  6. Envoie la réponse fournie par l’objet d’application.

    note info
    INFO
    Les assertions que l’application Commerce est installée et non en mode de maintenance sont le comportement par défaut de la classe \Magento\Framework\App\Bootstrap. Vous pouvez le modifier à l’aide d’un script de point d’entrée lors de la création de l’objet bootstrap.

    Exemple de script de point d’entrée qui modifie l’objet bootstrap :

    code language-php
    <?php
    use Magento\Framework\App\Bootstrap;
    require __DIR__ . '/app/bootstrap.php';
    
    $params = $_SERVER;
    $params[Bootstrap::PARAM_REQUIRE_MAINTENANCE] = true; // default false
    $params[Bootstrap::PARAM_REQUIRE_IS_INSTALLED] = false; // default true
    $bootstrap = Bootstrap::create(BP, $params);
    
    /** @var \Magento\Framework\App\Http $app */
    $app = $bootstrap->createApplication('Magento\Framework\App\Http');
    $bootstrap->run($app);
    

Gestion des exceptions par défaut

L’objet bootstrap indique comment l’application Commerce gère les exceptions non interceptées comme suit :

  • En mode développeur, affiche l’exception en l’état.
  • Dans tout autre mode, tente de consigner une exception et d’afficher un message d’erreur générique.
  • Arrête Commerce avec le code d’erreur 1

Applications de point d’entrée

Nous disposons des applications de point d’entrée suivantes (c’est-à-dire, des applications définies par Commerce qui sont utilisées par le serveur web comme index de répertoire) :

Point d’entrée HTTP

\Magento\Framework\App\Http fonctionne comme suit :

  1. Détermine la zone d’application.

  2. Démarre le contrôleur frontal et les systèmes de routage afin de trouver et d’exécuter une action de contrôleur.

  3. Utilise un objet de réponse HTTP pour renvoyer le résultat obtenu à partir de l’action du contrôleur.

  4. Gestion des erreurs (dans l’ordre de priorité suivant) :

    1. Si vous utilisez le mode développeur :

      • Si l’application Commerce n’est pas installée, redirigez-vous vers l’assistant de configuration.
      • Si l’application Commerce est installée, affichez une erreur et un code d’état HTTP 500 (Erreur interne du serveur).
    2. Si l’application Commerce est en mode de maintenance, affichez une landing page "Service non disponible" conviviale avec le code d’état HTTP 503 (Service non disponible).

    3. Si l’application Commerce n’est pas installée, redirigez-vous vers l’assistant de configuration.

    4. Si la session n’est pas valide, redirigez-vous vers la page d’accueil.

    5. En cas d’erreur d’initialisation d’une autre application, affichez une page conviviale "Page introuvable" avec le code d’état HTTP 404 (introuvable).

    6. Pour toute autre erreur, affichez une page conviviale "Service indisponible" avec la réponse HTTP 503, générez un rapport d’erreur et affichez son identifiant sur la page.

Point d’entrée de ressource statique

\Magento\Framework\App\StaticResource est une application permettant de récupérer des ressources statiques (par exemple, CSS, JavaScript et images). Les actions comportant une ressource statique sont reportées jusqu’à ce que la ressource soit demandée.

INFO
Le point d’entrée pour les fichiers d’affichage statique n’est pas utilisé dans le mode de production pour éviter toute attaque potentielle sur le serveur. En mode de production, l’application Commerce s’attend à ce que toutes les ressources nécessaires existent dans le répertoire <your Commerce install dir>/pub/static.

En mode développeur ou par défaut, une requête pour une ressource statique inexistante est redirigée vers le point d’entrée statique conformément aux règles de réécriture spécifiées par le .htaccess approprié.
Lorsque la requête est redirigée vers le point d’entrée, l’application Commerce analyse l’URL demandée en fonction des paramètres récupérés et trouve la ressource demandée.

  • En mode développeur, le contenu du fichier est renvoyé de sorte que chaque fois que la ressource est demandée, le contenu renvoyé est à jour.

  • En mode default , la ressource récupérée est publiée afin d’être accessible par l’URL demandée précédemment.

    Toutes les futures demandes de la ressource statique sont traitées par le serveur de la même manière que les fichiers statiques, c’est-à-dire sans impliquer le point d’entrée. S’il est nécessaire de synchroniser les fichiers publiés avec les fichiers d’origine, le répertoire pub/static doit être supprimé. Par conséquent, les fichiers sont automatiquement republiés avec la requête suivante.

Point d’entrée de la ressource multimédia

Magento\MediaStorage\App\Media récupère des ressources multimédias (c’est-à-dire tout fichier téléchargé dans le stockage multimédia) à partir de la base de données. Il est utilisé chaque fois que la base de données est configurée comme un stockage multimédia.

\Magento\Core\App\Media tente de trouver le fichier multimédia dans le stockage de base de données configuré et de l’écrire dans le répertoire pub/static, puis renvoie son contenu. En cas d’erreur, il renvoie un code d’état HTTP 404 (Not Found) dans l’en-tête sans contenu.

recommendation-more-help
386822bd-e32c-40a8-81c2-ed90ad1e198c