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);