Overzicht van initialisatie en bootstrap
Om de toepassing van Commerce in werking te stellen, worden de volgende acties uitgevoerd in pub/index.php:
- Omvat app/bootstrap.php, die essentiële initialiseringsroutines zoals fout behandeling, initialiserend autoloader, plaatsend het profileren opties, en het plaatsen van standaardtimezone uitvoert.
- Creeer een geval van \Magento\Framework\App\Bootstrap.php
- Creeer een de toepassingsinstantie van Commerce: \Magento\Framework\AppInterface
- Commerce uitvoeren
Bootstrap run logic
het bootstrap voorwerpgebruikt het volgende algoritme om de toepassing van Commerce in werking te stellen:
-
Initialiseert de fouthandler.
-
Creeert de objecten manageren de basis gedeelde diensten die overal worden gebruikt en door het milieu worden beïnvloed. De omgevingsparameters worden op de juiste wijze in deze objecten geïnjecteerd.
-
Bevestigt dat de onderhoudswijze niet wordt toegelaten; anders, eindigt.
-
Hiermee wordt bevestigd dat de Commerce-toepassing is geïnstalleerd; anders wordt de toepassing beëindigd.
-
Start de Commerce-toepassing.
Alle niet-afgevangen uitzonderingen tijdens het starten van de toepassing worden automatisch aan Commerce doorgegeven via de methode
catchException()
die u kunt gebruiken om de uitzondering af te handelen. De laatste functie moettrue
offalse
retourneren:- Als
true
: Commerce heeft de uitzondering verwerkt. U hoeft niets anders te doen. - Als
false
: (of een ander leeg resultaat), heeft Commerce de uitzondering niet afgehandeld. Het bootstrap-object voert de standaardsubroutine voor de afhandeling van uitzonderingen uit.
- Als
-
Verstuurt de reactie die door het toepassingsobject wordt geboden.
note info INFO De bewering dat de Commerce-toepassing is geïnstalleerd en niet in de onderhoudsmodus is het standaardgedrag van de \Magento\Framework\App\Bootstrap
-klasse. U kunt het wijzigen met een script voor het ingangspunt wanneer u het bootstrap-object maakt.Voorbeeld van een berichtpuntscript waarmee het bootstrap-object wordt gewijzigd:
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);
Standaarduitzonderingsbehandeling
Met het bootstrap-object wordt als volgt aangegeven hoe de Commerce-toepassing niet-afgevangen uitzonderingen verwerkt:
- Op ontwikkelaarwijze, toont de uitzondering zoals-is.
- Op een andere wijze, probeert om uitzondering te registreren en een generisch foutenbericht te tonen.
- Beëindigt Commerce met foutcode
1
Toepassingen voor instappunten
Er zijn de volgende toepassingen voor ingangspunten (toepassingen die door Commerce zijn gedefinieerd en die door de webserver worden gebruikt als een directoryindex):
HTTP-ingangspunt
\Magento\Framework\App\Httpwerkt als volgt:
-
Bepaalt het toepassingsgebied.
-
Begint het voorcontrolemechanisme en het verpletteren van systemen om een controlemechanismeactie te vinden en uit te voeren.
-
Gebruikt een HTTP-reactieobject om het resultaat van de controlleractie te retourneren.
-
Foutafhandeling (in de volgende prioriteitsvolgorde):
-
Als u ontwikkelaarwijzegebruikt:
- Als de Commerce-toepassing niet is geïnstalleerd, stuurt u deze om naar de wizard Setup.
- Als de Commerce-toepassing is geïnstalleerd, geeft u een fout en HTTP-statuscode 500 weer (Interne serverfout).
-
Als de Commerce-toepassing in de onderhoudsmodus staat, geeft u een gebruikersvriendelijke landingspagina met HTTP-statuscode 503 (Service Unavailable) weer.
-
Als de toepassing van Commerce niet geïnstalleerd is, richt aan de Tovenaar van de Opstelling opnieuw.
-
Als de sessie ongeldig is, leidt u deze om naar de startpagina.
-
Als er een andere toepassingsinitialisatiefout is, geeft u een gebruikersvriendelijke pagina "Pagina niet gevonden" weer met HTTP-statuscode 404 (Niet gevonden).
-
Voor een andere fout, toon een gebruikersvriendelijke "Dienst niet beschikbaar"pagina met reactie 503 van HTTP en produceer een foutenrapport en toon zijn identiteitskaart op de pagina.
-
Statisch invoerpunt voor bron
\Magento\Framework\App\StaticResourceis een toepassing voor het terugwinnen van statische middelen (bijvoorbeeld, CSS, JavaScript, en beelden). Het stelt om het even welke acties met een statische middel uit tot het middel wordt gevraagd.
<your Commerce install dir>/pub/static
alle benodigde bronnen bevat.In de standaard- of ontwikkelaarsmodus wordt een aanvraag voor een niet-bestaande statische bron omgeleid naar het statische ingangspunt volgens de herschrijfregels die door de betreffende .htaccess
zijn opgegeven.
Wanneer de aanvraag naar het ingangspunt wordt omgeleid, parseert de Commerce-toepassing de gevraagde URL op basis van opgehaalde parameters en zoekt de gevraagde bron.
-
Op ontwikkelaarwijze, is de inhoud van het dossier teruggekeerd zodat telkens als het middel wordt gevraagd, de teruggekeerde inhoud bijgewerkt is.
-
Op gebrekwijze, wordt het teruggewonnen middel gepubliceerd zodat is het toegankelijk door eerder gevraagde URL.
Alle toekomstige verzoeken om het statische middel worden verwerkt door de server het zelfde als statische dossiers; namelijk zonder het ingangspunt te impliceren. Als gepubliceerde bestanden moeten worden gesynchroniseerd met de originele bestanden, moet de map
pub/static
worden verwijderd. Als gevolg hiervan worden bestanden automatisch opnieuw gepubliceerd met de volgende aanvraag.
Invoerpunt van mediabron
Magento\MediaStorage\App\Mediawint media middelen (namelijk om het even welke dossiers terug die aan media opslag) van het gegevensbestand worden geupload. Het wordt gebruikt wanneer het gegevensbestand als media opslag wordt gevormd.
\Magento\Core\App\Media
probeert het mediabestand te zoeken in de geconfigureerde databaseopslag en het naar de map pub/static
te schrijven en vervolgens de inhoud ervan te retourneren. Als er een fout optreedt, wordt er een HTTP 404 (Not Found)-statuscode zonder inhoud in de header geretourneerd.