[PaaS uniquement]{class="badge informative" title="S’applique uniquement aux projets Adobe Commerce on Cloud (infrastructure PaaS gérée par Adobe) et aux projets On-premise."}

Présentation de l'initialisation et du bootstrap

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

Logique d’exécution de Bootstrap

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

  1. Initialise le gestionnaire d’erreurs.

  2. Crée les 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, 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 lors du lancement de l’application est automatiquement renvoyée à Commerce dans la méthode catchException() que vous pouvez utiliser pour gérer l’exception. Ce dernier doit renvoyer true ou false :

    • Si true : exception gérée par Commerce avec succès. Pas besoin de faire autre chose.
    • Si false : (ou tout autre résultat vide) Commerce n’a pas géré 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 selon lesquelles l’application Commerce est installée et n’est pas en mode de maintenance constituent 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 spécifie la manière dont 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.
  • Termine 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 avant et les systèmes de routage afin de trouver et d'exécuter une action du contrôleur.

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

  4. Traitement des erreurs (dans l'ordre de priorité suivant) :

    1. Si vous utilisez mode Développeur :

      • Si l’application Commerce n’est pas installée, redirigez-vous vers l’assistant d’installation.
      • Si l’application Commerce est installée, affichez une erreur et le code d’état HTTP 500 (Internal Server Error).
    2. Si l’application Commerce est en mode de maintenance, affichez une page de destination conviviale indiquant « Service indisponible » avec le code d’état HTTP 503 (Service indisponible).

    3. Si l’application Commerce n’est pas installée, redirigez-la vers l’assistant d’installation.

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

    5. En cas d’autre erreur d’initialisation de l’application, affichez une page conviviale « Page introuvable » avec le code d’état HTTP 404 (Not Found).

    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). Cela reporte toutes les actions avec une ressource statique jusqu’à ce que la ressource soit demandée.

INFO
Le point d’entrée des fichiers de vue statiques n’est pas utilisé en mode de production afin d’éviter des exploits potentiels 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 par défaut ou développeur, une requête de 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 recherche 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 par défaut, la ressource récupérée est publiée afin d’être accessible par l’URL précédemment demandée.

    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 des ressources multimédia

Magento\MediaStorage\App\Media récupère les ressources multimédias (c’est-à-dire tous les fichiers chargés dans le stockage multimédia) de la base de données. Il est utilisé chaque fois que la base de données est configurée en tant que 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 de renvoyer son contenu. En cas d’erreur, il renvoie un code d’état HTTP 404 (Introuvable) dans l’en-tête sans contenu.

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