Artikel » Migration von 1.8 auf 1.9
Migration von 1.8 auf 1.9
In der Version 1.9 sind einige Änderungen enthalten, die nicht API-konform sind. Daher ist es
notwendig, bestehende Anwendungen anzupassen. Die folgenden Kapitel beschreiben die notwendigen
Updates und geben Hinweise auf die neu im Release vorhandenen Features.
Wie den Release-Notes zu entnehmen ist, wurde die veraltete Komponente
variablenHandler
entfernt. Als Ablösung dient die Klasse
RequestHandler,
die eine sehr ähnliche Funktion bereitstellt.
Die Migration vom
variablenHandler auf den
RequestHandler gestaltet
sich wegen der nahezu identischen API sehr einfach. Im Quellcode muss dabei lediglich
PHP-Code
$myVar = variablenHandler::registerLocal(...);
durch
PHP-Code
$myVar = RequestHandler::getValues(...);
ersetzt werden. Weiterhin muss das import()-Statement
PHP-Code
import('tools::variablen','variablenHandler');
durch
PHP-Code
import('tools::request','RequestHandler');
ausgetauscht werden. Die Änderungen können daher durch "
search&replace"
vorgenommen werden.
Der Umstieg von der veralteten Komponente
filesystemHandler auf den neu
hinzugekommenen
FilesystemManager gestaltet sich etwas aufwendiger. Hier hat sich
nicht nur der Name der Klasse und der Methoden geändert, sondern auch die Funktionalität.
Die folgende Tabelle zeigt die Änderungen der Methoden und deren Signaturen:
| Methode des filesystemHandler (alt) |
Methode des FilesystemManager (neu) |
| deleteFolderRecursive($folder = '') |
deleteFolder($folder[,$recursive = true]) |
| deleteWorkDir() |
deleteFolder($folder[,$recursive = false]) |
| changeWorkDir([$folder = '.']) |
- |
| renameFile($fileName,$newFileName) |
renameFile($sourceFile,$targetFile[,$force = false]) |
| getAffectedFiles() |
- |
| deleteFiles($files = array()) |
- |
| - |
removeFile($file) |
| copyFile($sourceFile,$targetFile) |
copyFile($sourceFile,$targetFile[,$force = false]) |
| showFileSize($$file) |
- |
| showDirContent() |
getFolderContent($folder[,$fullpath = false]) |
| showDirSize() |
showFolderSize($folder) |
| showDirContentCount() |
- |
| showFileAttributes($file) |
getFileAttributes($file[,$attributeName = null)] |
| deleteWorkDir() |
- |
| isFileNameUnique($folder,$fileName) |
- |
Anmerkungen:
-
renameFile(): $sourceFile und $targetFile müssen qualifizierte Pfad-Angaben
enthalten. Ist der dritte Parameter auf true gesetzt, so wird die u.U. vorhandene
Zieldatei überschrieben.
-
removeFile(): $file muss eine qualifizierte Pfad-Angabe enthalten.
-
copyFile(): $sourceFile und $targetFile müssen qualifizierte Pfad-Angaben
enthalten. Ist der dritte Parameter auf true gesetzt, so wird die u.U. vorhandene
Zieldatei überschrieben.
-
Die Methode uploadFile() behält ihre Signatur, jedoch muss der Name der Ziel-Datei
selbständig auf Korrektheit (z.B. erlaubte Zeichen) überprüft werden. Zudem gibt
die Funktion nun nur noch true bzw. false, nicht jedoch den Pfad zur Zieldatei
zurück.
-
Die Methode getFileAttributes() gibt ein assoziatives Array mit Attributes zurück.
Falls der zweite Parameter den Namen eines Attributes enthält, wird statt der Liste der
Wert desselben zurückgegeben.
-
Die in der Komponente FilesystemManager enthaltenen Methoden sind alle statisch.
Die Verwendung der neuen Klasse kann der
API-Dokumentation oder der
Klassenreferenz
entnommen werden.
Das Release 1.9 enthält mehrere Kompatibilitätsänderungen am Pager.
Um die neuen Version des Pagers mit dem
GenericORMapper verwenden zu können, wurde der
Datenbank-Zugriff auf den
ConnectionManager umgestellt. Des Weiteren können zur
Steigerung der Performance des Pagers die Ergebnisse der Datenbank-Abfragen in der Session
zwischengespeichert werden. Hierzu wird der
SessionManager eingesetzt.
Um die erweiterte Version des Pagers nutzen zu können, müssen in den bestehenden
Konfigurationsdateien zwei dafür verwendete Parameter ergänzt werden. Diese sind:
APF-Template
Pager.DatabaseConnection = "<ConnectionKey>"
Pager.CacheInSession = "true|false"
Die erste Direktive benennt die zu nutzende Datenbank-Verbindung (siehe
ConnectionManager),
der zweite Parameter definiert, ob die Pager-Ergebnisse in der Session zwischengespeichert werden
sollen.
Des Weiteren umfasst das Refactoring der Komponente einige Änderungen der API. Die folgende
Tabelle zeigt diese im Überblick:
| Methode des pagerManager (alt) |
Methode des PagerManager (neu) |
| loadEntries() |
loadEntries([$addStmtParams=array()]) |
|
loadEntriesByAppDataComponent(
&$DataComponent,
$LoadMethod)
|
loadEntriesByAppDataComponent(
&$dataComponent,
$loadMethod[,
$addStmtParams=array()])
|
| getPager() |
getPager([$addStmtParams=array()]) |
Anmerkungen:
-
Wichtigste Änderung ist, dass die zusätzlich von der Applikation mitgegebenen
Parameter nun statt bei der Initialisierung des Pagers beim Aufruf der Lade-Methoden übergeben
werden muss.
-
Weitere Änderung ist, dass die Fabrik-Klasse von pagerManagerFabric auf
PagerManagerFabric umbenannt wurde. Dies bedingt, dass die Erzeugung des Pagers
nun über
PHP-Code
$pMF = &$this->__getServiceObject('modules::pager::biz','PagerManagerFabric');
$pM = &$pMF->getPagerManager('{CONFIG_SECTION}');
erfolgt.
Die neue API des
ImageManager beinhaltet im nun exakt zwei statische Methoden.
Für die Migration bedeutet dies, dass die Methoden
generateThumbnail() und
resizeImage() durch Aufrufe der neuen Methode
resizeImage() und alle
Aufrufe von
showImageAttributes() durch
getImageAttributes() ersetzt
werden müssen.
Dabei ist zu beachten, dass die Methode
getImageAttributes() andere Schlüssel für
die Attribute des jeweiligen Bildes benutzt. Details können der
Klassenreferenz
entnommen werden.
Kommentare
Möchten Sie den Artikel eine Anmerkung hinzufügen, oder haben Sie ergänzende Hinweise? Dann können Sie diese
hier einfügen. Die bereits verfassten Anmerkungen und Kommentare finden Sie in der untenstehenden Liste.
Für diesen Artikel liegen aktuell keine Kommentare vor.