Start · Sprachen · PHP · Referenz · Yaf_Route_Static

Yaf_Route_Static

Klasse

Routet eingehende HTTP-Anfragen anhand eines exakt übereinstimmenden, statischen URL-Pfades auf einen Controller und eine Action.

seit PHP 2.0.0 Kategorie: misc

Signatur

class Yaf_Route_Static implements Yaf_Route_Interface

Beschreibung

Yaf_Route_Static ist die einfachste Route-Implementierung im Yaf-Framework. Sie prüft, ob der angeforderte URL-Pfad exakt mit einem vordefinierten, unveränderlichen Pfad übereinstimmt. Dynamische Platzhalter oder reguläre Ausdrücke sind hier nicht vorgesehen – es wird buchstäblich auf Zeichenkettengleichheit geprüft.

Diese Klasse implementiert das Interface Yaf_Route_Interface und kann daher direkt dem Router über Yaf_Router::addRoute() hinzugefügt werden. Sie eignet sich besonders für fest definierte, unveränderliche URLs wie /about, /contact oder /imprint, bei denen keine variablen Parameter erwartet werden.

Im Gegensatz zu Yaf_Route_Regex oder Yaf_Route_Map bietet Yaf_Route_Static keinerlei Variablen-Extraktion aus dem Pfad. Der Vorteil liegt in der maximalen Performance und Einfachheit bei rein statischen Pfaden.

  • Passt nur bei exakter Pfadübereinstimmung.
  • Kein Overhead durch reguläre Ausdrücke oder Muster.
  • Ideal für Landing-Pages, Impressum, Datenschutz o. ä.

Parameter

Name Typ Default Beschreibung
$route Pflicht string Der statische URL-Pfad, der abgeglichen werden soll, z. B. /about/team. Der Pfad muss exakt mit dem angeforderten URI übereinstimmen.

Rückgabewert

Typ

Beispiele

Statische Route für eine Impressum-Seite registrieren

<?php
// Bootstrap oder Routing-Konfiguration
$router = Yaf_Dispatcher::getInstance()->getRouter();

// Statische Route: /imprint wird auf ImprintController::indexAction() gemappt
$staticRoute = new Yaf_Route_Static('/imprint');
$router->addRoute('imprint', $staticRoute);

// Bei einer Anfrage an http://example.com/imprint
// wird der Router diese Route matchen und
// den ImprintController mit der indexAction aufrufen.

Mehrere statische Routen kombinieren

<?php
$router = Yaf_Dispatcher::getInstance()->getRouter();

// Verschiedene statische Seiten registrieren
$routes = [
    'about'   => '/about',
    'contact' => '/contact',
    'privacy' => '/privacy-policy',
];

foreach ($routes as $name => $path) {
    $router->addRoute($name, new Yaf_Route_Static($path));
}

// Anfrage an /contact wird auf ContactController::indexAction() weitergeleitet
// Anfrage an /about   wird auf AboutController::indexAction() weitergeleitet

// Wichtig · Fallstricke

Exakte Übereinstimmung: Yaf_Route_Static matcht nur bei exakter Übereinstimmung des Pfades. Trailing Slashes oder abweichende Groß-/Kleinschreibung können dazu führen, dass die Route nicht greift. Stellen Sie sicher, dass eingehende URLs normalisiert werden.

Keine Parameter-Extraktion: Anders als Yaf_Route_Rewrite oder Yaf_Route_Regex können mit dieser Route keine URL-Parameter extrahiert werden. Für dynamische Segmente muss eine andere Route-Klasse genutzt werden.

Reihenfolge beachten: Yaf evaluiert Routen in umgekehrter Registrierungsreihenfolge (LIFO). Zuletzt hinzugefügte Routen werden zuerst geprüft. Statische Routen sollten daher nach allgemeineren Routen registriert werden, damit sie Vorrang erhalten.