Dieser Beitrag ist eine sinngemäße Übersetzung von 4.3 Treasure Trove: the system registry von François Suter. Ich finde das Feature sehr cool, weshalb ich es euch nicht vorenthalten will.
TYPO3 4.3 enthält viele neue Funktionen. Viele bekommen nicht so viel Aufmerksamkeit wie sie verdienen, wie z.B. die System Registry. Die System
Registry ist eine einfache Datenbank Tabelle um Key-Value Paare zu speichern. Gedacht ist dies nicht für große Datenmengen, sondern nur für wenige Werte, gerade wenn eine zusätzliche Datenbank-Tabelle keinen Sinn macht. Ein Beispiel dafür ist der Planer (Scheduler), welcher die Registry benutzt um Informationen über den letzten „run“ zu speichern.
Die Registry kann überall innerhalb von TYPO3 benutzt werden. Die API ist sehr leicht zu benutzen. Einträge in der Registry bestehen aus drei Teilen.
- Einem Namensraum, der hilft Daten einmalig zu machen (gruppieren)
- Ein Schlüssel, welcher einen Eintrag identifiziert
- und ein Wert, welcher als BLOB in der Datenbank abgelegt wird
Um die Registry zu benutzen, benötigen wir als erstes eine Instanz:
$registry = t3lib_div::makeInstance('t3lib_Registry'); |
Nun kannst du folgende Funktionen benutzen:
- set um einen neuen Eintrag zu erzeugen oder zu aktualisieren
- get um einen Eintrag zu bekommen
- remove um einen Eintrag zu löschen
- removeAllByNamespace um alle Einträge eines Namespace zu löschen
Hier nun ein komplettes Beispiel (dem Scheduler entnommen):
$registry = t3lib_div::makeInstance('t3lib_Registry'); $runInformation = array('start' => $GLOBALS['EXEC_TIME'], 'end' => time(), 'type' => $type); $registry->set('tx_scheduler', 'lastRun', $runInformation); |
An einer anderen Stelle können dann die Werte entgegen genommen werden:
$registry = t3lib_div::makeInstance('t3lib_Registry'); $lastRun = $registry->get('tx_scheduler', 'lastRun'); |
Mehr Informationen gibt es in der TYPO3 Core APIs.
Viel Spaß