Wichtige Klassen für Konquadrat
Table of Contents
ObjectManager
Der ObjectManager hat 2 Aufgaben: erstellen und speichern von AbstractObjects. Das Speichern wird nur intern verwendet und sollte von aussen nicht aufgerufen werden!
Konquadrat-Objekte sollten niemals mit 'new' erstellt werden, sondern immer über den ObjectManager!
Das Erstellen von Objekten kann mit folgender Methode gemacht werden:
Description
Creates a new object of the type $type.
Parameters
- $type : \com\setasign\Konquadrat\Object\class-string<\com\setasign\Konquadrat\Object\T>
Must be a valid object type
ObjectFinder
Der ObjectFinder hat, wie der Name bereits sagt, die Aufgabe AbstractObjects zu finden.
Hierfür gibt es folgende Methoden:
AbstractObject
Alle Konquadrat-Objekte sind abgeleitet von AbstractObject! Alle Konquadrat-Objekte besitzen immer mindestens folgende Felder:
- id (unsigned integer)
- parent (reference)
- path (text)
- type (string - length wird ignoriert, da es in der Datenbank ein enum Feld ist)
- deleted (boolean)
- creationDateTime (datetime)
- changeDateTime (datetime)
Diese Felder (ausser parent und deleted) sollten niemals selber gefüllt werden!
Zusätzlich hat ein AbstractObject immer folgende Methoden:
__call()
Give some magic methods:
__get()
Alias for get($fieldName, true)
__isset()
Checks whether $fieldName exists and the value is not null.
__set()
Alias for set($fieldName, $value)
copyObjectData()
Copy the data of $object into this object. All fields of AbstractObject will be ignored (including the parent).
delete()
Marks the object as deleted and saves the object.
get()
Get the value of $fieldName.
getData()
Returns the data of the fields of this object.
getField()
Gets the field instance of $fieldName.
getFieldContainerName()
getFields()
Get all fields
hasField()
Checks whether the object has the field $fieldName.
reload()
Reloads the object.
resetField()
Resets the field to the initial value.
save()
Save the object.
set()
Sets the value for the field.
setData()
Set multiple fields at once.
TransactionManager
Der TransactionManager erweitert die Funktionalität der PDO-Transaktionen um eine weitere Schicht. Es wird bei einem Rollback nicht nur die Datenbanktransaktion zurückgedreht, sondern es werden auch alle Objekte auf den entsprechenden Stand zurückgedreht bevor sie gespeichert wurden!
Der TransactionManager bietet folgende relevante Methoden:
beginTransaction()
Begin a transaction.
commit()
Commit the database transaction.
inTransaction()
process()
If no transaction is running $callable will be encapsulated in a transaction
ObjectConfig
ObjectConfig ist eine Helferklasse mit einigen Methoden um die aktuell aktive Objektkonfiguration auszulesen.
SessionContext
SessionContext ist eine Helferklasse um die aktuelle Session, den aktuellen Request und den aktuell eingeloggten Benutzer zu bekommen (und die dazugehörige PermissionControl-Instanz).
getLoggedInUser()
This method returns the logged-in user.
getPermissionControl()
getRequest()
getSession()
getWindowId()
isLoggedIn()
Checks whether the client is logged in to the backend.
MessageList
MessageList ist ein einfacher Helfer um im Backend Probleme anzuzeigen ohne als Fehler zu zählen, z.B. wenn ein benötigtes Feld nicht ausgefüllt ist.
