Übersicht über Initialisierung und Bootstrap

Um die Commerce-Anwendung auszuführen, werden die folgenden Aktionen in implementiert pub/index.php:

Bootstrap-Ausführungslogik

Das Bootstrap-Objekt verwendet den folgenden Algorithmus, um die Commerce-Anwendung auszuführen:

  1. Initialisiert den Fehler-Handler.

  2. Erstellt die Objektmanager und allgemeine gemeinsame Dienste, die überall verwendet werden und von der Umgebung betroffen sind. Die Umgebungsparameter werden ordnungsgemäß in diese Objekte eingefügt.

  3. Stellt fest, dass der Wartungsmodus not aktiviert; andernfalls wird beendet.

  4. Stellt sicher, dass die Commerce-Anwendung installiert ist, andernfalls wird beendet.

  5. Startet die Commerce-Anwendung.

    Jede nicht abgefangene Ausnahme während des Anwendungsstarts wird automatisch an Commerce im Abschnitt catchException() -Methode, die Sie zur Verarbeitung der Ausnahme verwenden können. Letztere müssen entweder true oder false:

    • Wenn true: Commerce hat Ausnahmefehler erfolgreich verarbeitet. Es ist nicht notwendig, etwas Anderes zu tun.
    • Wenn false: (oder ein anderes leeres Ergebnis) Commerce hat die Ausnahme nicht verarbeitet. Das Bootstrap-Objekt führt die standardmäßige UnterRoutine für die Ausnahmebehandlung aus.
  6. Sendet die Antwort, die vom Anwendungsobjekt bereitgestellt wird.

    note info
    INFO
    Die Behauptung, dass die Commerce-Anwendung installiert ist und sich nicht im Wartungsmodus befindet, ist das Standardverhalten der \Magento\Framework\App\Bootstrap -Klasse. Sie können sie beim Erstellen des Bootstrap-Objekts mithilfe eines Einstiegspunktskripts ändern.

    Beispieleinstiegspunktskript, das das Bootstrap-Objekt ändert:

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

Standardmäßige Ausnahmebehandlung

Das bootstrap -Objekt gibt an, wie die Commerce-Anwendung nicht abgefangene Ausnahmen wie folgt handhabt:

  • In Entwicklermodus, zeigt die Ausnahme unverändert an.
  • In jedem anderen Modus versucht, Ausnahmefehler zu protokollieren und eine allgemeine Fehlermeldung anzuzeigen.
  • Beendet Commerce mit Fehlercode 1

Einstiegspunktanwendungen

Wir verfügen über die folgenden Einstiegspunktanwendungen (d. h. von Commerce definierte Anwendungen, die vom Webserver als Ordnerindex verwendet werden):

HTTP-Einstiegspunkt

\Magento\Framework\App\Http funktioniert wie folgt:

  1. Bestimmt die Anwendungsgebiet.

  2. Startet die Front-Controller- und Routing-Systeme, um eine Controller-Aktion zu finden und auszuführen.

  3. Verwendet ein HTTP-Antwortobjekt, um ein Ergebnis zurückzugeben, das von der Controller-Aktion abgerufen wurde.

  4. Fehlerbehandlung (in der folgenden Prioritätsreihenfolge):

    1. Wenn Sie Entwicklermodus:

      • Wenn die Commerce-Anwendung nicht installiert ist, führen Sie eine Umleitung zum Einrichtungs-Assistenten durch.
      • Wenn die Commerce-Anwendung installiert ist, zeigen Sie einen Fehler und den HTTP-Status-Code 500 (Interner Server-Fehler) an.
    2. Wenn sich die Commerce-Anwendung im Wartungsmodus befindet, zeigen Sie eine benutzerfreundliche Landingpage mit dem HTTP-Status-Code 503 (Dienst nicht verfügbar) "Dienst nicht verfügbar"an.

    3. Wenn die Commerce-Anwendung not installiert ist, führen Sie eine Umleitung zum Einrichtungs-Assistenten durch.

    4. Wenn die Sitzung ungültig ist, führen Sie eine Umleitung zur Startseite durch.

    5. Wenn ein anderer Anwendungsinitialisierungsfehler auftritt, zeigen Sie eine benutzerfreundliche Seite "Seite nicht gefunden"mit dem HTTP-Status-Code 404 (Nicht gefunden) an.

    6. Zeigen Sie bei jedem anderen Fehler eine benutzerfreundliche Seite "Dienst nicht verfügbar"mit HTTP-Antwort 503 an, generieren Sie einen Fehlerbericht und zeigen Sie dessen ID auf der Seite an.

Einstiegspunkt für statische Ressourcen

\Magento\Framework\App\StaticResource ist eine Anwendung zum Abrufen von statischen Ressourcen (z. B. CSS, JavaScript und Bildern). Dadurch werden alle Aktionen mit einer statischen Ressource verschoben, bis die Ressource angefordert wird.

INFO
Der Einstiegspunkt für statische Ansichtsdateien wird nicht in Produktionsmodus um potenzielle Exploits auf dem Server zu vermeiden. Im Produktionsmodus erwartet die Commerce-Anwendung, dass alle erforderlichen Ressourcen im <your Commerce install dir>/pub/static Verzeichnis.

Im Standard- oder Entwicklermodus wird eine Anforderung für eine nicht vorhandene statische Ressource gemäß den von der entsprechenden .htaccess.
Wenn die Anfrage an den Einstiegspunkt umgeleitet wird, analysiert die Commerce-Anwendung die angeforderte URL anhand der abgerufenen Parameter und sucht die angeforderte Ressource.

  • In Entwickler -Modus wird der Inhalt der Datei zurückgegeben, sodass der zurückgegebene Inhalt bei jeder Anforderung der Ressource auf dem neuesten Stand ist.

  • In default -Modus wird die abgerufene Ressource veröffentlicht, sodass sie über die zuvor angeforderte URL zugänglich ist.

    Alle zukünftigen Anforderungen für die statische Ressource werden vom Server genauso verarbeitet wie statische Dateien, d. h. ohne den Einstiegspunkt zu berücksichtigen. Wenn es erforderlich ist, veröffentlichte Dateien mit Original-Dateien zu synchronisieren, wird die pub/static -Ordner entfernt werden. Daher werden Dateien automatisch mit der nächsten Anfrage erneut veröffentlicht.

Einstiegspunkt für Medienressourcen

Magento\MediaStorage\App\Media ruft Medienressourcen (d. h. alle Dateien, die in den Medienspeicher hochgeladen wurden) aus der Datenbank ab. Sie wird immer dann verwendet, wenn die Datenbank als Medienspeicher konfiguriert ist.

\Magento\Core\App\Media versucht, die Mediendatei im konfigurierten Datenbankspeicher zu finden und in die pub/static und geben dann seinen Inhalt zurück. Bei Fehler wird ein HTTP-Statuscode 404 (Nicht gefunden) im Header ohne Inhalt zurückgegeben.

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