class Collection extends Entity

Der Collection-Presenter arbeitet mit mehrere Objekten

Traits

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

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

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

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

No description

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

Einen Datensatz updaten

get(ParameterMap $parameter)

Bearbeitung von GET-Anfragen

from Entity
head(ParameterMap $parameter)

Bearbeitung von HEAD-Anfragen

from Entity
integer
getContentTypeID()

Inhaltstyp der Anfrage

from Entity
getObjectByIDOrPrototype(ParameterMap $parameter)

Objekt oder Prototypen holen

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

Objekt oder Prototypen holen

from Entity
put(ParameterMap $parameter)

Bearbeitung von PUT-Anfragen

from Entity
validateAndPatchData(ParameterMap $parameter)

Daten prüfen und schreiben

from Entity
patch(ParameterMap $parameter)

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

from Entity
string
getIndexNameOfPrototype(ModelInstance $prototype)

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

from Entity
delete(ParameterMap $parameter)

Bearbeitung von mehreren DELETE-Anfragen

validateAndDeleteData(ParameterMap $parameter)

Daten prüfen und löschen

from Entity

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

in Data at line 494
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

in Data at line 123
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

abstract protected string getClassOfPrototype()

Klasse des Modells

Return Value

string

Exceptions

ConfigurationException

in Data at line 177
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 215
protected string getMappedRedirectRoute(Alvine $object)

Route für Redirect berechnen

Parameters

Alvine $object

Return Value

string URL

in Data at line 238
protected Route getRedirectRoute()

Redirect-Route holen

Return Value

Route

Exceptions

RouteNotFoundException

in Data at line 283
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 327
protected string getClassOfQuery()

Klasse des Modells

Return Value

string

Exceptions

ConfigurationException

in Data at line 357
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 436
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 449
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 521
protected ObjectMap getRelationDefinition(ModelInstance $model)

Relationsdefinition holen

Parameters

ModelInstance $model

Return Value

ObjectMap

Exceptions

TypeException

in Data at line 540
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 596
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 655
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 717
protected Data writeObject(Alvine $object)

Objekt schreiben

Parameters

Alvine $object

Return Value

Data

in Data at line 738
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 749
protected Data deleteObject(Alvine $object)

Objekt löschen

Parameters

Alvine $object

Return Value

Data

in Data at line 763
protected string getViewForTheResponse(MIMEType $mimeType = null)

View für die Antwort aus Konfiguration ermitteln

Parameters

MIMEType $mimeType

Return Value

string

Exceptions

NoViewException

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

Standard-Klasse des Views für einen MimeType

Parameters

MIMEType $mimeType

Return Value

string

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

Parameters

ParameterMap $parameter
Alvine $prototype

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

Einen Datensatz updaten

Parameters

ParameterMap $parameter
string $classOfPrototype

Return Value

Generic

in Entity at line 87
Presenter get(ParameterMap $parameter)

Bearbeitung von GET-Anfragen

Parameters

ParameterMap $parameter

Return Value

Presenter Dieses Objekt

in Entity at line 189
Presenter head(ParameterMap $parameter)

Bearbeitung von HEAD-Anfragen

Parameters

ParameterMap $parameter

Return Value

Presenter Dieses Objekt

in Entity at line 198
protected integer getContentTypeID()

Inhaltstyp der Anfrage

Return Value

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

in Entity at line 216
protected Model getObjectByIDOrPrototype(ParameterMap $parameter)

Objekt oder Prototypen holen

Parameters

ParameterMap $parameter

Return Value

Model

in Entity at line 240
protected Model getObjectByIDOrNull(ParameterMap $parameter, Alvine $prototype = null)

Objekt oder Prototypen holen

Parameters

ParameterMap $parameter
Alvine $prototype

Return Value

Model | null

in Entity at line 305
Presenter put(ParameterMap $parameter)

Bearbeitung von PUT-Anfragen

Parameters

ParameterMap $parameter

Return Value

Presenter Dieses Objekt

in Entity at line 318
protected Generic validateAndPatchData(ParameterMap $parameter)

Daten prüfen und schreiben

Parameters

ParameterMap $parameter

Return Value

Generic

in Entity at line 393
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

in Entity at line 418
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 55
Presenter delete(ParameterMap $parameter)

Bearbeitung von mehreren DELETE-Anfragen

Parameters

ParameterMap $parameter

Return Value

Presenter Dieses Objekt

in Entity at line 508
protected Generic validateAndDeleteData(ParameterMap $parameter)

Daten prüfen und löschen

Parameters

ParameterMap $parameter

Return Value

Generic