2017-02-08 3 views
0

Wenn das Fat-Free-Framework (F3) erkennt, dass eine eingehende HTTP-Anforderung keiner der in Ihrer Anwendung definierten Routen entspricht, können Sie eine Standardroute festlegen für diese Fälle. Um zum Beispiel am Ende aller Routen, die Sie in der Datei definiert haben, eine Route einzufügen, an der alle eingehenden HTTP-Anfragen, die nicht mit den vorherigen Routen übereinstimmen, dorthin gelangen?Können Sie eine Standardroute im Fat-Free-Framework festlegen

Grundsätzlich möchte ich jede Anfrage weiterleiten, die keine Übereinstimmung mit einer bestimmten Klasse/Controller findet. Es scheint so, als wäre das etwas, was möglich ist, aber ich kann es nirgends in den F3-Dokumenten finden.

Antwort

1

Nicht in der Lage, es zu testen, aber was ist, wenn Sie einen Platzhalter als letzte Route Option verwenden?

$f3->route('GET /*')

+0

Es ist nicht notwendig, die '/ *' Route als die letzte Strecke zu registrieren. Der Schrägstrich ist optional für die Wildcard-Route (getestet mit '3.6'). – Rayne

1

Statt eine Standardroute der Registrierung ist es besser, einen benutzerdefinierten Fehler-Handler registrieren die in der Lage ist 404 und andere Fehlercodes zu verarbeiten. Dieser Ansatz ermöglicht es, den Fehlercontroller oder die Fehlerfunktion erneut zu verwenden, wenn diese Fehler programmgesteuert ausgelöst werden. z.B. mit Base->error(404).

  1. Registrieren Sie den Handler mit ONERROR
  2. Parse ERROR mit dem registrierten ONERROR Handler

Es ist auch möglich, die beforeRoute() und afterRoute() Ereignisse zu verwenden.

Beispiel

<?php 

/** @var base $f3 */ 
$f3->set('ONERROR', 'App\Module\Error\Controller\ErrorController->onError'); 

class ErrorController 
{ 
    public function onError(Base $f3) 
    { 
     if ($f3->get('ERROR.code') == 404) { 
      /** 
      * TODO Generate an appropriate HTTP 404 page 
      */ 

      // Handled the `404` error. 
      return true; 
     } 

     // Let Fat-Free Framework's default error handler do the work. 
     return false; 
    } 
} 
Verwandte Themen