abstract class Data extends Presenter

Default-Presenter für abgeleitete Klassen

Diese Spezialklasse bildet die Grundlage aller präsenter für Alvine-Anwendungen und regelt die Abfolge der einzelnen Befehle.

Constants

PARAMETER_COUNT

Anzahl

PARAMETER_PAGE

Seite

PARAMETER_OFFSET

Offset / Start

PARAMETER_ORDERBY

Sortierung

PARAMETER_TEMPLATE

Vorlage

PARAMETER_RESOURCEPATH

Ressource

PARAMETER_REDIRECT

Redirect

PARAMETER_PATCH_KEY

Key für Patch

PARAMETER_PATCH_NAME

Name für Patch

PARAMETER_PATCH_VALUE

Wert für Patch

PARAMETER_WHATIF

Vorschaumodus für Änderungen

KEY_COLLECTION

Schlüsselwort für Multieintragungen

PARAMETER_INJECTLINKS

Schlüsselwort für Multieintragungen

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
Web
getPrototype(ParameterMap $parameter)

Prototyp für ein Modell

string
getClassOfPrototype()

Klasse des Modells

createPrototypeValidateAndOperate(ParameterMap $parameter, Closure $operationCallback, ModelInstance $object = null)

Ausführen einer Operation mit vorheriger Prüfung

string
getMappedRedirectRoute(Alvine $object)

Route für Redirect berechnen

getRedirectRoute()

Redirect-Route holen

Query
getQuery(ModelInstance $model, ParameterMap $parameter)

Query holen

string
getClassOfQuery()

Klasse des Modells

createQueryInstance(FilterDocument $filter, integer $offset = 0, integer $count = 10, SimpleMap $orderBy = null)

Neue Instanz

Map
getRouteLinks(Route $route = null)

Aktuelle Linkliste der übergebenen Route oder falls kein Wert übergeben wurde, der Route des Presenters $this->getRoute();

Dataset
injectLinks(Dataset $dataset)

Links in Dataset einfügen

$this
injectMeta(ModelInstance $model, ParameterMap $parameters, Dataset $dataset)

Allegemeine Metadaten

Dataset
injectRelations(ModelInstance $model, ParameterMap $parameters, Dataset $dataset)

Relationen einfügen

ObjectMap
getRelationDefinition(ModelInstance $model)

Relationsdefinition holen

runThroughRelations(ModelInstance $model, ParameterMap $parameters, Closure $closure)

Durch die Ergebnisse rennen

updateRelations(ModelInstance $model, ParameterMap $parameters)

Relationen updaten

boolean
isInvalidSetErrorViewAndReturnState(ModelInstance $object, ParameterMap $parameter)

Validieren des Modells gegen die eigenen Regeln und das Ergebnis zurückgeben. Ist die Prüfung nicht valide, so wird ein ErrorView gesetzt und false zurückgegeben.

writeObject(Alvine $object)

Objekt schreiben

Subset
findObject(string $className, Query $query)

Nach einem Objekt suchen

deleteObject(Alvine $object)

Objekt löschen

string
getViewForTheResponse(MIMEType $mimeType = null)

View für die Antwort aus Konfiguration ermitteln

string
getDefaultViewClass(MIMEType $mimeType = null)

Standard-Klasse des Views für einen MimeType

Details

in Presenter at line 59
__construct(Assembly $assembly)

Neuer Presenter

Parameters

Assembly $assembly

in Presenter at line 57
protected Presenter init()

Initialisieren des Presenters

Return Value

Presenter

in Presenter at line 178
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 93
Presenter disableApplicationViewInit()

Anwendungsview nicht initialisieren

Return Value

Presenter

in Presenter at line 103
Presenter enableApplicationViewInit()

Anwendungsview initialisieren

Return Value

Presenter

in Presenter at line 121
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 134
View getView()

View des Presenters

Return Value

View View des Presenters

in Presenter at line 143
Assembly getAssembly()

Assembly es Presenters

Return Value

Assembly

at line 496
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 86
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 139
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 152
Route getRoute()

Route

Return Value

Route $route

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

Route setzen

Parameters

Route $route

Return Value

Presenter

in Presenter at line 203
Request getRequest()

Request

Return Value

Request

in Presenter at line 235
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 284
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 331
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 376
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 392
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 125
protected Web getPrototype(ParameterMap $parameter)

Prototyp für ein Modell

In der Konfiguration der Route muss das Modell definiert sein.

<configuration>
    <model>
        <class>%{model}</class>;
    </model>;
</configuration>

Parameters

ParameterMap $parameter

Return Value

Web Objekt vom Typ Modell

Exceptions

ConfigurationException

at line 144
protected string getClassOfPrototype()

Klasse des Modells

Return Value

string

Exceptions

ConfigurationException

at line 179
protected Generic createPrototypeValidateAndOperate(ParameterMap $parameter, Closure $operationCallback, ModelInstance $object = null)

Ausführen einer Operation mit vorheriger Prüfung

Parameters

ParameterMap $parameter
Closure $operationCallback
ModelInstance $object

Return Value

Generic

at line 217
protected string getMappedRedirectRoute(Alvine $object)

Route für Redirect berechnen

Parameters

Alvine $object

Return Value

string URL

at line 240
protected Route getRedirectRoute()

Redirect-Route holen

Return Value

Route

Exceptions

RouteNotFoundException

at line 285
protected Query getQuery(ModelInstance $model, ParameterMap $parameter)

Query holen

Im Parameter können die Parameter offset (oder page) und count definiert sein. Über den Parameter orderby wird die Sortierung definiert.

Parameters

ModelInstance $model Modell
ParameterMap $parameter Parameter

Return Value

Query

at line 329
protected string getClassOfQuery()

Klasse des Modells

Return Value

string

Exceptions

ConfigurationException

at line 359
protected createQueryInstance(FilterDocument $filter, integer $offset = 0, integer $count = 10, SimpleMap $orderBy = null)

Neue Instanz

Parameters

FilterDocument $filter Index-Dokument
integer $offset Offset
integer $count Anzahl
SimpleMap $orderBy Sortierung (Der Schlüssel ist der Feldname, der Wert die Sortierung (asc oder desc)

Aktuelle Linkliste der übergebenen Route oder falls kein Wert übergeben wurde, der Route des Presenters $this->getRoute();

Parameters

Route $route Route

Return Value

Map Linkliste

Links in Dataset einfügen

Parameters

Dataset $dataset

Return Value

Dataset

at line 438
protected $this injectMeta(ModelInstance $model, ParameterMap $parameters, Dataset $dataset)

Allegemeine Metadaten

Parameters

ModelInstance $model
ParameterMap $parameters
Dataset $dataset

Return Value

$this

at line 451
protected Dataset injectRelations(ModelInstance $model, ParameterMap $parameters, Dataset $dataset)

Relationen einfügen

Parameters

ModelInstance $model
ParameterMap $parameters
Dataset $dataset

Return Value

Dataset

at line 523
protected ObjectMap getRelationDefinition(ModelInstance $model)

Relationsdefinition holen

Parameters

ModelInstance $model

Return Value

ObjectMap

Exceptions

TypeException

at line 542
protected Data runThroughRelations(ModelInstance $model, ParameterMap $parameters, Closure $closure)

Durch die Ergebnisse rennen

Der Aufruf des Closures erfolgt mit den Parametern: ($fieldName, $model, $result, $relation, $newValues)

Parameters

ModelInstance $model Modell
ParameterMap $parameters Parameter des Requests
Closure $closure

Return Value

Data

at line 598
Entity updateRelations(ModelInstance $model, ParameterMap $parameters)

Relationen updaten

Parameters

ModelInstance $model Modell
ParameterMap $parameters Parameter des Requests

Return Value

Entity

Exceptions

TypeException

at line 657
protected boolean isInvalidSetErrorViewAndReturnState(ModelInstance $object, ParameterMap $parameter)

Validieren des Modells gegen die eigenen Regeln und das Ergebnis zurückgeben. Ist die Prüfung nicht valide, so wird ein ErrorView gesetzt und false zurückgegeben.

Parameters

ModelInstance $object Zu prüfendes Objekt
ParameterMap $parameter Parameter

Return Value

boolean Status der Prüfung

at line 719
protected Data writeObject(Alvine $object)

Objekt schreiben

Parameters

Alvine $object

Return Value

Data

at line 740
Subset findObject(string $className, Query $query)

Nach einem Objekt suchen

Die Suche erfolgt in dem in der Konfiguration definierten Indexer. Der Indexer gibt eine Ergebnismenge zurück. Diese Methode holt sich die ID des Ergebnisses und verwendet die Methode getObject um das echte Objekt zu laden.

Parameters

string $className Klassenname
Query $query Query

Return Value

Subset Ergebnismenge

Exceptions

NullException Es wurde kein Handler für den Typ gefunden
FindException Im Ergebnis wurde ein Eintrag ohne UUID oder Type gefunden. Wahrscheinlich ist der Index nicht mehr konsistent.

at line 751
protected Data deleteObject(Alvine $object)

Objekt löschen

Parameters

Alvine $object

Return Value

Data

at line 765
protected string getViewForTheResponse(MIMEType $mimeType = null)

View für die Antwort aus Konfiguration ermitteln

Parameters

MIMEType $mimeType

Return Value

string

Exceptions

NoViewException

at line 807
abstract protected string getDefaultViewClass(MIMEType $mimeType = null)

Standard-Klasse des Views für einen MimeType

Parameters

MIMEType $mimeType

Return Value

string