class Entity extends Data

Der Objektpresenter verarbeitet Anfragen die auf ein einzelnes Objekt des Modells zielen.

Über den Parameter redirect kann ein alternatives Ziel angegeben werden.

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

CONTENTTYPEID_FORM

Formular

CONTENTTYPEID_MISC

Nicht JSON oder Formular

CONTENTTYPEID_JSON

JSON TYP

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
protected Route $updateRoute

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.

from Data
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

from Data
string
getClassOfPrototype()

Klasse des Modells

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

Ausführen einer Operation mit vorheriger Prüfung

from Data
string
getMappedRedirectRoute(Alvine $object)

Route für Redirect berechnen

from Data
getRedirectRoute()

Redirect-Route holen

from Data
Query
getQuery(ModelInstance $model, ParameterMap $parameter)

Query holen

from Data
string
getClassOfQuery()

Klasse des Modells

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

Neue Instanz

from Data
Map
getRouteLinks(Route $route = null)

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

from Data
Dataset
injectLinks(Dataset $dataset)

Links in Dataset einfügen

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

Allegemeine Metadaten

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

Relationen einfügen

from Data
ObjectMap
getRelationDefinition(ModelInstance $model)

Relationsdefinition holen

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

Durch die Ergebnisse rennen

from Data
updateRelations(ModelInstance $model, ParameterMap $parameters)

Relationen updaten

from Data
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.

from Data
writeObject(Alvine $object)

Objekt schreiben

from Data
Subset
findObject(string $className, Query $query)

Nach einem Objekt suchen

from Data
deleteObject(Alvine $object)

Objekt löschen

from Data
string
getViewForTheResponse(MIMEType $mimeType = null)

View für die Antwort aus Konfiguration ermitteln

from Data
string
getDefaultViewClass(MIMEType $mimeType = null)

Standard-Klasse des Views für einen MimeType

get(ParameterMap $parameter)

Bearbeitung von GET-Anfragen

head(ParameterMap $parameter)

Bearbeitung von HEAD-Anfragen

integer
getContentTypeID()

Inhaltstyp der Anfrage

getObjectByIDOrPrototype(ParameterMap $parameter)

Objekt oder Prototypen holen

getObjectByIDOrNull(ParameterMap $parameter, Alvine $prototype = null)

Objekt oder Prototypen holen

validateAndWriteData(ParameterMap $parameter, Alvine $prototype = null)

Daten prüfen und schreiben

updateDatasetFromParameterMap(ParameterMap $parameter, string $classOfPrototype = null)

Einen Datensatz updaten

put(ParameterMap $parameter)

Bearbeitung von PUT-Anfragen

validateAndPatchData(ParameterMap $parameter)

Daten prüfen und schreiben

patch(ParameterMap $parameter)

Bearbeitung von PATCH-Anfragen. Dieser Anfragentyp unterstützt ausschließlich die Mimetypes json und x-www-form-urlencoded.

string
getIndexNameOfPrototype(ModelInstance $prototype)

Name des Index des Prototypen. Bei SQL kann dies ein anderer Wert sein, als die UUID

delete(ParameterMap $parameter)

Bearbeitung von DELETE-Anfragen

validateAndDeleteData(ParameterMap $parameter)

Daten prüfen und löschen

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

in Data 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

in Data 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

in Data at line 144
protected string getClassOfPrototype()

Klasse des Modells

Return Value

string

Exceptions

ConfigurationException

in Data 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

in Data at line 217
protected string getMappedRedirectRoute(Alvine $object)

Route für Redirect berechnen

Parameters

Alvine $object

Return Value

string URL

in Data at line 240
protected Route getRedirectRoute()

Redirect-Route holen

Return Value

Route

Exceptions

RouteNotFoundException

in Data 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

in Data at line 329
protected string getClassOfQuery()

Klasse des Modells

Return Value

string

Exceptions

ConfigurationException

in Data 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

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

Allegemeine Metadaten

Parameters

ModelInstance $model
ParameterMap $parameters
Dataset $dataset

Return Value

$this

in Data 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

in Data at line 523
protected ObjectMap getRelationDefinition(ModelInstance $model)

Relationsdefinition holen

Parameters

ModelInstance $model

Return Value

ObjectMap

Exceptions

TypeException

in Data 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

in 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

in Data 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

in Data at line 719
protected Data writeObject(Alvine $object)

Objekt schreiben

Parameters

Alvine $object

Return Value

Data

in 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.

in Data at line 751
protected Data deleteObject(Alvine $object)

Objekt löschen

Parameters

Alvine $object

Return Value

Data

in 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 72
protected string getDefaultViewClass(MIMEType $mimeType = null)

Standard-Klasse des Views für einen MimeType

Parameters

MIMEType $mimeType

Return Value

string

at line 86
Presenter get(ParameterMap $parameter)

Bearbeitung von GET-Anfragen

Parameters

ParameterMap $parameter

Return Value

Presenter Dieses Objekt

at line 188
Presenter head(ParameterMap $parameter)

Bearbeitung von HEAD-Anfragen

Parameters

ParameterMap $parameter

Return Value

Presenter Dieses Objekt

at line 197
protected integer getContentTypeID()

Inhaltstyp der Anfrage

Return Value

integer static::CONTENTTYPEID_JSON|static::CONTENTTYPEID_FORM|static::CONTENTTYPEID_MISC

at line 215
protected Model getObjectByIDOrPrototype(ParameterMap $parameter)

Objekt oder Prototypen holen

Parameters

ParameterMap $parameter

Return Value

Model

at line 239
protected Model getObjectByIDOrNull(ParameterMap $parameter, Alvine $prototype = null)

Objekt oder Prototypen holen

Parameters

ParameterMap $parameter
Alvine $prototype

Return Value

Model | null

at line 266
protected Generic validateAndWriteData(ParameterMap $parameter, Alvine $prototype = null)

Daten prüfen und schreiben

Parameters

ParameterMap $parameter
Alvine $prototype

Return Value

Generic

at line 305
protected Generic updateDatasetFromParameterMap(ParameterMap $parameter, string $classOfPrototype = null)

Einen Datensatz updaten

Parameters

ParameterMap $parameter
string $classOfPrototype

Return Value

Generic

at line 360
Presenter put(ParameterMap $parameter)

Bearbeitung von PUT-Anfragen

Parameters

ParameterMap $parameter

Return Value

Presenter Dieses Objekt

at line 373
protected Generic validateAndPatchData(ParameterMap $parameter)

Daten prüfen und schreiben

Parameters

ParameterMap $parameter

Return Value

Generic

at line 440
Presenter patch(ParameterMap $parameter)

Bearbeitung von PATCH-Anfragen. Dieser Anfragentyp unterstützt ausschließlich die Mimetypes json und x-www-form-urlencoded.

Parameters

ParameterMap $parameter

Return Value

Presenter Dieses Objekt

at line 465
protected string getIndexNameOfPrototype(ModelInstance $prototype)

Name des Index des Prototypen. Bei SQL kann dies ein anderer Wert sein, als die UUID

Parameters

ModelInstance $prototype

Return Value

string

at line 482
Presenter delete(ParameterMap $parameter)

Bearbeitung von DELETE-Anfragen

Parameters

ParameterMap $parameter

Return Value

Presenter Dieses Objekt

at line 555
protected Generic validateAndDeleteData(ParameterMap $parameter)

Daten prüfen und löschen

Parameters

ParameterMap $parameter

Return Value

Generic