Skip to main content

Kérés életciklusa

Minden kérés a public/index.php-n megy keresztül (a public/.htaccess minden nem létező fájlt/könyvtárat ide irányít):
1

Bootstrap

Betöltődik a Composer autoloader, a .env (vlucas/phpdotenv), majd a config/*.php fájlok egy tömbbe gyűlnek össze és bekerülnek a DI konténerbe (App::instance()->set('config', ...)).
2

Session indítás

A session neve, mentési útvonala (storage/sessions) és cookie paraméterei (secure, httponly, samesite, strict_mode) a .env-ből állnak be, mielőtt session_start() lefut.
3

Szolgáltatások regisztrálása

db (a Database PDO wrapper), view (a View renderer) és locale (a Locale::resolve() eredménye) bekerül a konténerbe.
4

Routing

Egy üres Router példányba betöltődik a routes/web.php és routes/api.php, majd $router->dispatch(new Request()) lefuttatja az illeszkedő route-ot.
5

Hibakezelés

A dispatch()-ból feldobott kivételeket az index.php fogja el: naplózza (error_log), és — ha APP_DEBUG=false — 500-as hibaoldalt renderel ahelyett, hogy a stack trace kiszivárogna.

App\Core osztályok

Nincs Facade vagy service locator absztrakció — minden globális elérés az app() és config() helpereken keresztül történik, amiket a composer.json autoload.files szakasza tölt be (app/Core/helpers.php).

Middleware pipeline

A Router::dispatch() a route middleware-lécából jobbról balra egy záró-lánc (Closure) pipeline-t épít: a lista utolsó eleme csomagolja be elsőként a vezérlőt meghívó $core closure-t, majd sorban kívülről befelé az összes middleware. Így a lista elején lévő middleware fut le elsőként, és az ő handle()-je dönt arról, hogy egyáltalán meghívja-e a $next()-et.
Minden middleware osztály egyetlen handle(Request $request, callable $next): mixed metódust implementál, konstruktor-függőség nélkül (new $middleware()).

Elérhető middleware-ek

Részletek és route-onkénti összerendelés: Routing és middleware.