Wichtige Klassen für Konquadrat

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
public \com\setasign\Konquadrat\Object\ObjectManager::create (
\com\setasign\Konquadrat\Object\class-string<\com\setasign\Konquadrat\Object\T> $type
): \com\setasign\Konquadrat\Object\AbstractObjectInterface

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:

com\setasign\SetaSite\Block\BlockRenderException - Error in block "ObjectFinder-Docs" of type "com\setasign\SetaSite\CustomModules\ApiDoc\Blocks\DocBlock\DocBlock"

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.

addInfo()

addWarning()

3 caught errors Unexpected output x