Fallback

Pokud routa nebyla nalezena nebo uživatel nemá přístup, zavolá se FallbackController. Ten obsahuje metodu handle(int $httpStatusCode), která volá Response::fallback().

Kdy se volá

404Routa nebyla nalezena
403Uživatel nemá oprávnění (Admin práva, Auth atribut)
401Uživatel není přihlášen (Auth atribut)

Šablony

Fallback hledá šablonu v /app/views/fallback/{httpStatusCode}.twig. Název souboru odpovídá HTTP status kódu.

app/views/fallback/
├── 401.twig        // Unauthorized
├── 403.twig        // Forbidden
├── 404.twig        // Not Found
└── partials/
    ├── 404-account.twig   // 404 pro account sekci
    └── 404-front.twig     // 404 pro front sekci

Šablona 404.twig může rozlišovat sekci aplikace a zobrazit příslušný design:

{% if app.str.startsWith(app.request.getUrl(), '/account') %}
    {% include 'fallback/partials/404-account.twig' %}
{% else %}
    {% include 'fallback/partials/404-front.twig' %}
{% endif %}

FallbackController

class FallbackController
{
    public function handle(int $httpStatusCode): void
    {
        Response::fallback($httpStatusCode);
    }
}
FallbackController lze upravit — například logovat 404 chyby, přesměrovat na jinou stránku nebo zobrazit vlastní obsah podle kontextu.
Pokud šablona pro daný HTTP status kód neexistuje, framework vyhodí RuntimeException.