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 anderer Routingtabellen aus einem Verzeichnis
INCLUDE my/directory

# Einbinden einer Route aus einem Phar-Archive
# Das Phar-Archive muss aber bereits eingebunden worden sein.
INCLUDE phar://myphar.phar/config/route/my.xml

Constants

SUBDIR

Properties

protected File $file from Parser
protected Directory $parsedRouteDirectory from Parser
protected Collection $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(Collection $router, File $file)

Parser bestimmen

from Parser
static Route
createRoute(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
updateFromFile(FileInputStream $file)

No description

getRouteFromString(string $line)

Route erstellen

Details

in Parser at line 73
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 89
static Directory getParsedRoutePath()

Standardpfad in dem die erstellten Routen abgelegt werden.

Return Value

Directory

in Parser at line 97
$this clear()

Return Value

$this

at line 81
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 128
static Parser getParser(Collection $router, File $file)

Parser bestimmen

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

Parameters

Collection $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 158
static protected Route createRoute(string $method, string $pattern, string $presenter, string $id, string $class = null)

Route erstellen

Parameters

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 180
protected File writeParsedStructure(string $source, string $extension = null)

Parameters

string $source
string $extension

Return Value

File

at line 101
protected RouteParser updateFromFile(FileInputStream $file)

Parameters

FileInputStream $file

Return Value

RouteParser

Exceptions

NotFoundException

at line 187
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