Für die Erstellung und Pflege von Dateien und Verzeichnissen stehen die PHP-Classes rex_file und rex_dir zur Verfügung. Nachfolgend werden die Aufgaben der darin enthaltenen Methoden gelistet.
In den Methoden müsen korrekte Pfade angegeben werden. Im Kapitel Pfade (rex_path, rex_url) finden sich dazu alle erforderlichen Informationen.
Die Class rex_file kümmert sich um das Handling einzelner Dateien. Hier stehen Methoden zum Einlesen, Schreiben und zur Ausgabe von Dateien aus und im Dateisystem zur Verfügung.
Mit der Methode get wird eine Datei aus dem Dateisystem eingelesen. Ein weiterer Parameter erlaubt die Ausgabe eines Default-Wertes bzw. Fehlermedlung, wenn die Datei nicht gelesen werden kann (default: NULL).
rex_file::get($file, $default = null);Beispiel:
$data = rex_file::get(rex_path::frontend('/assets/styles.css'),'not available');Mit der Methode getConfig kann eine Config-Datei eingelesen werden. Kann die Datei nicht gelesen werden, kann ein Default-Wert zurückgegeben werden (default: NULL).
Diese Methode wird hauptsächlich vom Core verwendet. AddOns sollten auf die Möglichkeiten der package.yml, Properties und rex_config zurückgreifen.
getConfig($file, $default = []);Beispiel: Einlesen der REDAXO Config
$config = rex_path::coreData('config.yml');Mit der Methode getCache wird eine Datei aus dem Cache eingelesen. Ein weiterer Parameter erlaubt die Ausgabe eines Default-Wertes bzw. Fehlermedlung (wenn nicht festgelegt NULL), wenn die Datei nicht gelesen werden kann.
getCache($file, $default = []);Beispiel:
echo (rex_file::getCache(rex_path::addonCache('meinaddon').'blindtext.txt'));Mit der Methode put schreibt Content in eine Datei. Existiert die Datei noch nicht, wird sie erstellt. Rie Rückgabe bei Erfolg ist TRUE, sonst FALSE. Vorhandene Inhalte der Datei werden überschriben.
put($file, $content);Beispiel:
$css = 'body { background: #eee;}
p { line-height: 1.2em;}
';
$success = rex_file::put(rex_path::frontend('/assets/new_styles.css'),$css);Die Methode putConfig schreibt Konfigurationsdaten in eine Config-Datei. Die Rückgabe bei Erfolg ist TRUE, sonst FALSE.
Diese Methode wird hauptsächlich vom Core verwendet. AddOns sollten auf die Möglichkeiten der package.yml, Properties und rex_config zurückgreifen.
putConfig($file, $content);Die Methode putCache schreibt Daten in den Cache. Bei Erfolg TRUE, sonst FALSE.
putCache($file, $content);Beispiel:
$content = '
Dies ist ein Typoblindtext. An ihm kann man sehen, ob alle Buchstaben da sind und wie sie aussehen.
';
rex_file::putCache(rex_path::addonCache('meinaddon').'blindtext.txt',$content);Der gecachte Inhalt kann dann mit getCache abgerufen werden:
echo (rex_file::getCache(rex_path::addonCache('meinaddon').'blindtext.txt'));Die Methode copy ermöglicht das Kopieren einer einer Datei zu einem Verzeichnis oder Datei. Es müssen eine Quell- und ein Zielpfad eingegeben werden. Die Rückgabe bei Erfolg ist TRUE, sonst FALSE.
rex_file::copy($srcfile, $dstfile);Die Methode move ermöglicht das Verschieben einer einer Datei. Es müssen ein Quell- und ein Zielpfad eingegeben werden. Die Rückgabe bei Erfolg ist TRUE, sonst FALSE.
rex_file::move($srcfile, $dstfile);Die Methode delete ermöglicht das Löschen einer einer Datei. Es müssen ein Quell- und ein Zielpfad eingegeben werden. Die Rückgabe bei Erfolg ist TRUE, sonst FALSE.
rex_file::delete($file);Die Methode extension liefert als Rückgabe die Dateiendung einer Datei.
rex_file::extension($file);Die Methode mimeType liefert den MimeTyp einer Datei.
$extension = rex_file::mimeType($file);z.B.:
- application/javascript
- image/svg+xml
- video/mpeg
Die Methode formattedSize liefert eine benutzerfreundliche Ausgabe der Dateigröße einer Datei
$filesize = rex_file::formattedSize($file);getOutput führt die angegebene Datei aus und gibt das Ergebnis aus.
getOutput($file);Die Class rex_dir kümmert sich um das Handling von Verzeichnissen. Hier stehen Methoden zum Erstellen, kopieren und löschen von Verzeichnissen Verfügung.
create erstellt ein bzw. mehere Verzeichnisse. Ist der Parameter $recursive auf true gestellt (Standard), wird der komplette Pfad inkl. angegebener Unterverzeichnisse erstellt. Bei false, müssen die angegbenen Unterverzeicnisse bereits bestehen. Rückgabe bei Erfolg ist TRUE, sonst FALSE.
rex_dir::create($dir, $recursive = true);isWritable prüft ob Schreibrechte für das Verzeichnis bestehen. Rückgabe bei Erfolg ist TRUE, sonst FALSE.
rex_dir::isWritable($dir);copy kopiert ein Verzeichnis zum angegebenen Ziel. Rückgabe bei Erfolg ist TRUE, sonst FALSE.
rex_dir::copy($srcdir, $dstdir);delete löscht ein Verzeichnis rekursiv. Wird $deleteSelf auf false gesetzt werden nur die Unterverzeichnisse gelöscht. Rückgabe bei Erfolg ist TRUE, sonst FALSE.
rex_dir::delete($dir, $deleteSelf = true);deleteFiles löscht alle Deteien im angegeben Verzeichnis und der Unterverzeichnisse. Wird $recursive auf false gesetzt werden die Dateien der Unterverzeichnisse nicht gelöscht. Rückgabe bei Erfolg ist TRUE, sonst FALSE.
rex_dir::deleteFiles($dir, $recursive = true);