class Page extends Presenter

Der Page-Presenter bildet eine Webseite mit mehreren Elementen ab. Dazu werden unterschiedliche Komponenten eingebunden und in einer HTML-Datei integriert.

Über die Parameter oder die Konfiguration müssen folgende Werte definiert werden

template Name des Templates im Ressourcen-Verzeichnis

Konfiguration

In der Route könne verschiedene Inhalte über die Konfiguration eingebunden werden.

<configuration>
</configuration>

Container

Über Container können unterschiedliche Inhalte in die Seite integriert werden.

<containers>
    <container placeholder="home">
        <content><![CDATA[Mein Inhalt für diese Seite<hr>]]></content>
        <route id="USER-LIST">
            <parameters>
                <parameter name="category" type="string">${cid}</parameter>
            </parameters>
        </route>
        <object class="\Alvine\Service\Subversion\Model\MyUser" uuid="0a69e5f6-9a1c-4da1-f4ad-0c576d24acca">
        <plugin class="\Alvine\Application\Web\Presenter\Page\Plugin\Navigation\Tree">
            <navigation>
                group.headline=MyHeadline
                group.4.label=A14
            </navigation>
        </plugin>
    </container>
</containers>

content Dieser Tag definiert einen Inhalt der direkt in den Platzhalter geschrieben wird. route Bei der Route wird die Route mit der entsprechenden ID aufgerufen. Mittels Parameter können die verwendeten Platzhalter in der URL definiert werden. object Mit Hilfe des Objektes können Daten die in dr Datenbank enthalten sind direkt integriert werden plugin Das Plugin erlaubt es Inhalte von Klassen direkt einzubinden, ohne den Umweg über einen Presenter zu gehen.

Rewrite von Inhalten

Über die Rewrite-Anweisung können Inhalte (zum Beispiel URL) umgeschrieben werden. Dabei muss das Pattern und die Ersetzung angegeben werden. Die Methode verwendet preg_replace. Die beiden Parameter werden der Methode direkt übergeben.

<rewrite>
  <rule>
      <pattern>/user/add</pattern>
      <target>/result</target>
  </rule>
</rewrite>

pattern ist das Muster target ist die Ersetzung

Modelldaten

Über die Model-Konfiguration können Werte direkt in das Model geschrieben werden. Dies ist zum Beispiel dann sinnvoll, wenn statische Werte im Template gesetzt werden sollen

<model>
  <string key="myKey">value</string>
</model>

Links

Properties

protected View $view from Presenter
protected Assembly $assembly from Presenter
protected boolean $initApplicationView from Presenter
protected Route $route from Presenter
protected PropertyText $resourceText from Presenter

Methods

__construct(Assembly $assembly)

Neuer Presenter

from Presenter
init()

Initialisieren des Presenters

from Presenter
execute(ParameterMap $parameter)

Nicht definierte Methode ausführen

from Presenter
disableApplicationViewInit()

Anwendungsview nicht initialisieren

from Presenter
enableApplicationViewInit()

Anwendungsview initialisieren

from Presenter
initView(View $view)

View setzen

from Presenter
getView()

View des Presenters

from Presenter
getAssembly()

Assembly es Presenters

from Presenter
ParameterMap
getExecuteParameter(Route $routeObj, ParameterMap $parameter, string $method, URI $route)

Diese Methode definiert welche Parameter im Presenter zur Verfügung stehen sollen.

initResourceText(string $resource = null, Directory $basepath = null)

Ressourcentexte initialisieren

from Presenter
string
getText(string $text, string $default = null, string $pluralKey = null)

Lokalisierten Text holen

from Presenter
getRoute()

Route

from Presenter
setRoute(Route $route)

Route setzen

from Presenter
Request
getRequest()

Request

from Presenter
getViewFromRouteID(string $routeID, ParameterMap $parameter)

Diese Methode holt einen View der mit einer Route verbunden ist.

from Presenter
getViewFromRoute(string $route)

Diese Methode führt eine Route aus und gibt den Ergebnisview zurück. Ist in der Anwendung kein View definiert Assembly::getView() liefert null, so setzt diese Methode eine View vom Typ HTTPError

from Presenter
MIMEType
getMediaTypeOrNullForTheResponse(array $allowdMimeTypes = null)

Diese Methode prüft in der Konfiguration der route, ob bestimmte Ausgabetypen erlaubt sind. Gegen diese wird das Ergebnis des Aufrufs von getResponseMediaType() geprüft.

from Presenter
MediaType
getResponseMediaType() deprecated

Medientyp für die Rückgabe ermitteln

from Presenter
initErrorView(StatusCode $statusCode, MIMEType $mimetype = null, Dataset $response = null, string $message = null) deprecated

Fehler-View setzen

from Presenter
string
getContentFromPlugin(Node $source, ParameterMap $parameter)

Inhalt von einem Plugin einlesen

string
getContentFromExtern(Node $source, ParameterMap $parameter)

Inhalt von extern einlesen

string
getContentFromObject(Node $source, ParameterMap $parameter)

Objekt einlesen und als String ausgeben

string
getContentFromContent(Node $source, ParameterMap $parameter)

Inhalt aus dem Tag auslesen und einfügen

string
getContentFromFile(Node $source, ParameterMap $parameter)

Inhalt aus einer Datei aus dem Dateisystem einlesen

string
getContentFromDirectory(Node $source, ParameterMap $parameter)

Inhalt aus einem Verzeichnis aus dem Dateisystem einlesen

string
getContentFromRoute(Node $source, ParameterMap $parameter)

Inhalt einer Route einlesen und zurückgeben

head(ParameterMap $parameter)

Bearbeitung von Head-Anfragen

get(ParameterMap $parameter)

Bearbeitung von GET-Anfragen

Details

in Presenter at line 57
__construct(Assembly $assembly)

Neuer Presenter

Parameters

Assembly $assembly

in Presenter at line 55
protected Presenter init()

Initialisieren des Presenters

Return Value

Presenter

in Presenter at line 176
Presenter execute(ParameterMap $parameter)

Nicht definierte Methode ausführen

Diese Methode erstellt die Antwort auf nicht definierte Methoden aufrufe und gibt einen 501 (Method Not Implemented) zurück.

Parameters

ParameterMap $parameter

Return Value

Presenter

in Presenter at line 91
Presenter disableApplicationViewInit()

Anwendungsview nicht initialisieren

Return Value

Presenter

in Presenter at line 101
Presenter enableApplicationViewInit()

Anwendungsview initialisieren

Return Value

Presenter

in Presenter at line 119
protected Presenter initView(View $view)

View setzen

View setzen und das View auch an die Anwendung weiterreichen. Ist self::initApplicationView gleich true so wird die Methode Assembly::initView aufgerufen und der Anwendungsview gesetzt.

Parameters

View $view View

Return Value

Presenter

in Presenter at line 132
View getView()

View des Presenters

Return Value

View View des Presenters

in Presenter at line 141
Assembly getAssembly()

Assembly es Presenters

Return Value

Assembly

at line 474
ParameterMap getExecuteParameter(Route $routeObj, ParameterMap $parameter, string $method, URI $route)

Diese Methode definiert welche Parameter im Presenter zur Verfügung stehen sollen.

Parameters

Route $routeObj Route-Objekt
ParameterMap $parameter Parameter der Route
string $method HTTP-Verb
URI $route Aufgerufene URI

Return Value

ParameterMap

in Presenter at line 84
protected DefaultPresenter initResourceText(string $resource = null, Directory $basepath = null)

Ressourcentexte initialisieren

Die Locale wird aus der Anwendung geholt

Parameters

string $resource
Directory $basepath

Return Value

DefaultPresenter

in Presenter at line 137
string getText(string $text, string $default = null, string $pluralKey = null)

Lokalisierten Text holen

Beispiele wenn der Schlüssel nicht gefunden wird:

// Lokalisierung mit Default-Wert
Presenter::getText('my.key::name=Hans', 'Hallo!');
-> Hallo!

// Wird kein Default übergeben wird der Schlüssel ausgegeben
Presenter::getText('my.key::name=Hans');
-> my.key::name=Hans

Parameters

string $text Textvorlage in der Form Schlüssel::key1=value1::key2=value2....
string $default Defaultwert
string $pluralKey Name des Schlüssels der Mehrzahlregel

Return Value

string lokalisierter Text

in Presenter at line 150
Route getRoute()

Route

Return Value

Route $route

in Presenter at line 161
Presenter setRoute(Route $route)

Route setzen

Parameters

Route $route

Return Value

Presenter

in Presenter at line 205
Request getRequest()

Request

Return Value

Request

in Presenter at line 237
View getViewFromRouteID(string $routeID, ParameterMap $parameter)

Diese Methode holt einen View der mit einer Route verbunden ist.

Parameters

string $routeID Routen-ID
ParameterMap $parameter Parameter

Return Value

View

in Presenter at line 286
View getViewFromRoute(string $route)

Diese Methode führt eine Route aus und gibt den Ergebnisview zurück. Ist in der Anwendung kein View definiert Assembly::getView() liefert null, so setzt diese Methode eine View vom Typ HTTPError

Parameters

string $route Auszuführenden Routen (nicht die ID)

Return Value

View

in Presenter at line 333
protected MIMEType getMediaTypeOrNullForTheResponse(array $allowdMimeTypes = null)

Diese Methode prüft in der Konfiguration der route, ob bestimmte Ausgabetypen erlaubt sind. Gegen diese wird das Ergebnis des Aufrufs von getResponseMediaType() geprüft.

Falls kein Parameter übergeben wird, aber eine Route hinterlegt ist, so wird aus der Konfiguration der Route foklgender Block ausgelesen

<configuration> <!-- erlaubte Mimetypes --> <mimetypes> <!-- Erlaubte Mimetypes: json --> <allowed>application/xml</allowed> </mimetypes> </configuration>

Parameters

array $allowdMimeTypes | \null $allowdMimeTypes Vom Presenter erlaubt

Return Value

MIMEType | null

in Presenter at line 378
MediaType getResponseMediaType() deprecated

deprecated since 20171027

Medientyp für die Rückgabe ermitteln

Versteht der Client HTML, so wird HTML zurückgegeben, ansosten wird auf JSON oder XML geprüft. Unterstützt der Client keine Codierung wird text/html angenommen.

Return Value

MediaType

in Presenter at line 394
protected Presenter initErrorView(StatusCode $statusCode, MIMEType $mimetype = null, Dataset $response = null, string $message = null) deprecated

deprecated since 20171027

Fehler-View setzen

Parameters

StatusCode $statusCode
MIMEType $mimetype
Dataset $response Daten für den MimeType Json
string $message Fehlermeldung

Return Value

Presenter

at line 130
protected string getContentFromPlugin(Node $source, ParameterMap $parameter)

Inhalt von einem Plugin einlesen

<container placeholder="headline">
  <plugin class="/namespace/class">
   <!-- pluginconfig -->
  </plugin>
</container>

Parameters

Node $source
ParameterMap $parameter

Return Value

string

at line 149
protected string getContentFromExtern(Node $source, ParameterMap $parameter)

Inhalt von extern einlesen

<container placeholder="headline">
  <extern url="http://www.example.com/" />
</container>

Parameters

Node $source
ParameterMap $parameter

Return Value

string

at line 173
protected string getContentFromObject(Node $source, ParameterMap $parameter)

Objekt einlesen und als String ausgeben

<container placeholder="headline">
  <object uuid="12435-3243-2343-12322-23232" class="\namespace\myClass" />
</container>

Parameters

Node $source
ParameterMap $parameter

Return Value

string

at line 193
protected string getContentFromContent(Node $source, ParameterMap $parameter)

Inhalt aus dem Tag auslesen und einfügen

<container placeholder="headline">
  <content>Mein Inhalt für diese Seite</content>
</container>

Parameters

Node $source
ParameterMap $parameter

Return Value

string

at line 214
protected string getContentFromFile(Node $source, ParameterMap $parameter)

Inhalt aus einer Datei aus dem Dateisystem einlesen

Mit path wird das Verzeichnis und mit name die Datei definiert. Wird kein Pfad angegeben, so wird das Resourcen-Verzeichnis genommen.

<container placeholder="headline">
  <file path="/to/resource" name="file.html"></file>
</container>

Parameters

Node $source
ParameterMap $parameter

Return Value

string

at line 253
protected string getContentFromDirectory(Node $source, ParameterMap $parameter)

Inhalt aus einem Verzeichnis aus dem Dateisystem einlesen

Mit path wird das Verzeichnis und mit name die Datei definiert. Wird kein Pfad angegeben, so wird das Resourcen-Verzeichnis genommen.

<container placeholder="headline">
  <file path="/to/resource" filter="file.html"></file>
</container>

Parameters

Node $source
ParameterMap $parameter

Return Value

string

at line 317
protected string getContentFromRoute(Node $source, ParameterMap $parameter)

Inhalt einer Route einlesen und zurückgeben

<container placeholder="headline">
  <route id="my-route">
    <parameters>
      <parameter type="integer" name="name">myName</parameter>
      <parameter type="string" name="format">jpg</parameter>
    </parameters>
  </route>
</container>

Parameters

Node $source
ParameterMap $parameter

Return Value

string

at line 359
Presenter head(ParameterMap $parameter)

Bearbeitung von Head-Anfragen

Parameters

ParameterMap $parameter

Return Value

Presenter Dieses Objekt

at line 370
Presenter get(ParameterMap $parameter)

Bearbeitung von GET-Anfragen

Parameters

ParameterMap $parameter

Return Value

Presenter Dieses Objekt