class View extends View

Der View für Webanwendungen erweitert den Standard-View mit alle für die Darstellung der Anwendungsdaten relevanten Methoden und Eigenschaften.

Je nach Angeforderten MediaType (MimeType) wird ein View erstellt, oder ein View mit StatusCode HTTP_UNSUPPORTED_MEDIA_TYPE (415) erstellt.

Mit Hilfe der Methode View::getDefaultInstance() kann ein Standard-View erstellt und zurückgeliefert werden. Dies ist dann sinnvoll, wenn man für bestimmte Abfragen noch keine Funktionalität implementiert hat, dem Anwender aber einen Hinweis geben möchte.

Wird in der Anwendungskonfiguration der Schlüssel application.web.i18n.showkeys gesetzt, so werden die i18n-Schlüssel eingeblendet.

Constants

LINK_PREFIX

Vorsilbe für Linkplatzhalter

LINK_URL_SUFFIX

URL

LINK_LABEL_SUFFIX

Label

LINK_ID_SUFFIX

ID

LINK_RELATION_SUFFIX

Relation

LINK_DELIMITER

Trennzeichen

Properties

protected Content $content
protected StatusCode $statusCode
protected SimpleMap $header

Methods

__construct(Content $content)

Neues View initialisieren

Content
getContent()

Inhalt

setHttpStatusCode(StatusCode|integer $statuscode)

Statuscode setzen

setLocation(URI $uri, boolean $permanent = true)

Umleitung setzen

setNotFound()

Seite nicht gefunden

setForbidden()

Zugang nicht erlaubt

ResponseHeader
getHeader()

Zugriff auf die Header

StatusCode
getHttpStatusCode()

StatusCode

static string
replaceI18N(string $content, Presenter $presenter, string $quoteCharList = null)

Internationalisierung

static Map
setLinksPlaceholder(Presenter $presenter, Map $map)

Link-Map initialisieren

static View
getInstanceFromMap(Presenter $presenter, Map $map, ParameterMap $parameter = null)

Instanz aus einer Map erstellen

static File
getTemplateFileAndMimeType(Presenter $presenter, Map $map = null, ParameterMap $parameter = null)

Pfad und Dateiname des Templates

Details

at line 106
__construct(Content $content)

Neues View initialisieren

Parameters

Content $content Inhalt

at line 120
Content getContent()

Inhalt

Return Value

Content Inhalt

at line 133
View setHttpStatusCode(StatusCode|integer $statuscode)

Statuscode setzen

Parameters

StatusCode|integer $statuscode Statuscode

Return Value

View Dieses Objekt

Exceptions

InvalidArgumentException falsches Argument

at line 156
View setLocation(URI $uri, boolean $permanent = true)

Umleitung setzen

Hinweis: Bei 302 ist das Ändern der Methode vom Client abhängig.

Parameters

URI $uri URI des neuen Ziels
boolean $permanent Permanet 301 oder temporär 302

Return Value

View Dieses Objekt

at line 175
View setNotFound()

Seite nicht gefunden

Setzt den Status-Code 404

Return Value

View Dieses Objekt

at line 186
View setForbidden()

Zugang nicht erlaubt

Setzt den Status-Code 403

Return Value

View Dieses Objekt

at line 195
ResponseHeader getHeader()

Zugriff auf die Header

Return Value

ResponseHeader

at line 204
StatusCode getHttpStatusCode()

StatusCode

Return Value

StatusCode StatusCode

at line 236
static string replaceI18N(string $content, Presenter $presenter, string $quoteCharList = null)

Internationalisierung

Die Platzhalter müssen mit i18n anfangen:

i18n{mykeytoreplace}

Die Eigenschaft muss dann mit dem Schlüssel angelegt werden:

mykeytoreplace=Text

In der Anwendungskonfiguration kann der Schlüssel application.web.i18n.showkeys auf true gesetzt werden.

Wird die Zeichenkette $quoteCharList übergeben, so werden alle Zeichen die darin enthalten sind mit einem Backslash versehen. Diese Funktion verwendet die PHP Version \addcslashes

Parameters

string $content Inhalt
Presenter $presenter Presenter
string $quoteCharList Quote

Return Value

string

at line 275
static protected Map setLinksPlaceholder(Presenter $presenter, Map $map)

Link-Map initialisieren

Sind in der Route Links definiert, so stehen diese als Platzhalter im Template zur Verfügung. Der Schlüssel der Links setzt sich aus link---url bzw link---label

Parameters

Presenter $presenter
Map $map

Return Value

Map

at line 333
static protected View getInstanceFromMap(Presenter $presenter, Map $map, ParameterMap $parameter = null)

Instanz aus einer Map erstellen

Template

Wird kein Template definiert, bzw ist dieses Leer wird nur ein leerer Platzhalter mit dem Namen content verwendet.

Über die Platzhalter template kann der Dateiname des Templates ohne Erweiterung (ohne .html) angegeben werden. Über den Schlüssel resourcepath kann der Pfad auf die Templates gesetzt werden.

Ist das Template nicht vorhanden, so wird ein HTTPError erstellt und der Inhalt zurückgegeben.

Links

Sind in der Route Links definiert, so stehen diese als Platzhalter im Template zur Verfügung. Der Schlüssel der Links setzt sich aus link---url bzw link---label

Parameter

Die übergebenen Parameter stehen mit dem Schlüssel der Parameter zur Verfügung. Das ObjektMap muss eine Limitation auf \Alvine\Types\Parameter besitzen. Ansonsten werden die Parameter nicht ausgewertet.

Die Werte in den Parametern überschreiben die Werte in der Map. Wenn das nicht gewüscht ist, wird $parameter nicht übergeben.

Parameters

Presenter $presenter Presenter für die Konfiguration
Map $map Map mit Werten die im Template ersetzt werden sollen
ParameterMap $parameter Parameter des Presenters

Return Value

View

at line 395
static protected File getTemplateFileAndMimeType(Presenter $presenter, Map $map = null, ParameterMap $parameter = null)

Pfad und Dateiname des Templates

Im Parameter können die Werte template und resourcepath übergeben werden. Wird nichts übergeben werden die Defaultwerte default für das Template und als Pfad der in der Config definierte genommen.

Das Ergebnis muss noch mit $templateFile->exists() auf Exitenz geprüft erden.

Der Aufruf erfolgt folgendermaßen

list($templateFile, $mediaType, $originTemplateFileForLogging) = static::getTemplateFileAndMimeType($presenter, $map, $parameter);

Parameters

Presenter $presenter Presenter
Map $map Werte
ParameterMap $parameter Parameter

Return Value

File $templateFile, \Alvine\Types\MediaType $mediaType, \Alvine\IO\File\File $templateFile $originTemplateFileForLogging> Array mit dem File-Objekt des Templates, dem MediaTyp des Requests und der ersten Suchstelle