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á
| 404 | Routa nebyla nalezena |
| 403 | Uživatel nemá oprávnění (Admin práva, Auth atribut) |
| 401 | Už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.
