class RouteParser extends Parser

Der Parser lädt eine Route aus einer einfachen Textdatei mit der Endung .route. Der Aufbau der Textdatei setzt sich aus fünf Spalten zusammen.

1 Die HTTP Methode oder ANY 2 Der Regex zum Prüfen der URL 3 Der Klassenname des Presenters 4 Die ID des Route-Objekts (Erlaubte Zeichen sind A-Z, 0-9, -) 5 Optionale Parameter in der Form key1=value,key2=value,key3="va lue"

Es können weitere Dateien eingebunden werden. Dazu muss das Schlüsselwort INCLUDE verwendet werden.

1 INCLUDE 2 externe Routingtabelle 3 optionale Eigenschaftsdatei

ROUTING-TABLE

Laden einer Seite

GET /page/home \Application\App\Web\Page 550e8400-e29b-11d4-a716-446655440000 id:'home' GET /page/{id} \Application\App\Web\Page 550e8400-e29b-11d4-a716-446655440001

POST /page/{id} \Application\App\Web\Page 550e8400-e29b-11d4-a716-446655440002 name:'neue Seite'

Einbinden anderer Routingtabellen mit einer Propertydatei

INCLUDE myRouting.xml detail.properties

Einbinden anderer Routingtabellen mit einer Propertydatei

INCLUDE myrouting.xml

Einbinden einer Route aus einem Phar-Archive

Das Phar-Archive muss aber bereits eingebunden worden sein.

INCLUDE phar://myphar.phar/config/route/my.xml

Properties

protected File $file from Parser
protected Directory $parsedRouteDirectory from Parser
protected Router $router from Parser

Methods

__construct(Collection $router, File $file)

RouteParser erstellen

from Parser
static Directory
getParsedRoutePath()

Standardpfad in dem die erstellten Routen abgelegt werden.

from Parser
$this
clear()

No description

from Parser
update()

Routingtabelle einlesen

static Parser
getParser(Router $router, File $file)

Parser bestimmen

from Parser
static Route
createRoute(Assembly $app, string $method, string $pattern, string $presenter, string $id, string $class = null)

Route erstellen

from Parser
File
writeParsedStructure(string $source, string $extension = null)

No description

from Parser
getRouteFromString(string $line)

Route erstellen

Details

in Parser at line 65
protected __construct(Collection $router, File $file)

RouteParser erstellen

Anhand der Dateierweiterung wird ein Router bestimmt und die übergebene Datei geparsed.

Parameters

Collection $router Router oder andere Routensammlung
File $file Routing-Datei

in Parser at line 82
static Directory getParsedRoutePath()

Standardpfad in dem die erstellten Routen abgelegt werden.

Return Value

Directory

in Parser at line 90
$this clear()

Return Value

$this

at line 80
Router update()

Routingtabelle einlesen

Return Value

Router Das Router-Objekt

Exceptions

ParseException Eintrag kann nicht gelesen werden
ClassNotFoundException Es wurde ein unbekannter Presenter definiert.

in Parser at line 121
static Parser getParser(Router $router, File $file)

Parser bestimmen

An der Dateierweiterung wird die Parser-Klasse bestimmt. Die Route test.xml wird durch den XmlParser verarbeitet.

Parameters

Router $router Router
File $file Name der Routing-Datei

Return Value

Parser Der zu verwendende Parser

Exceptions

RouteException Wenn kein Parser gefunden wurde

in Parser at line 151
static protected Route createRoute(Assembly $app, string $method, string $pattern, string $presenter, string $id, string $class = null)

Route erstellen

Parameters

Assembly $app HTTP-Verb (GET,POST,....)
string $method HTTP-Verb (GET,POST,....)
string $pattern URL-Muster
string $presenter Name der Presenter-Klasse
string $id ID der Route
string $class Name der Klasse (Standard \Alvine\Application\Web\Route)

Return Value

Route NeueRoute

Exceptions

ClassNotFoundException Klasse wurde nicht gefunden
TypeException Der Presentor ist nicht vom Typ Presentor

in Parser at line 163
protected File writeParsedStructure(string $source, string $extension = null)

Parameters

string $source
string $extension

Return Value

File

at line 169
protected Router getRouteFromString(string $line)

Route erstellen

Die übergebene Zeichenkette wird mittels RegEx zerlegt und eine Route hinzugefügt.

Parameters

string $line Zeichenkette Konfiguration

Return Value

Router Neue Route

Exceptions

ParseException Fehlernder Eintrage oder Syntax-Fehler
ClassNotFoundException Definierte Route nicht gefunden