Ein Dokument geht auf Reisen - Die Verwaltung von Dokumenten über das PHP-Framework
Veröffentlichungsdatum: 17. November 2009
Änderungsdatum: 03. November 2017
repository datei dokument verwaltung löschen verschieben umbenennen einchecken auschecken
Die Klasse wRepository stellt Ihnen die zur Verwaltung von Dokumenten notwendigen Funktionen zur Verfügung
Die Klasse wRepository stellt Ihnen die zur Verwaltung von Dokumenten notwendigen Funktionen zur Verfügung. Sie können Dokumente, die in der Verzeichnisstruktur abliegen natürlich auch direkt über PHP-Dateioperationen verwalten, wenn Sie jedoch über das Repository gehen, stellen Sie sicher, dass z.B. der Index angepasst wird, und dass auf Wunsch die zugeordneten Ereignisse gefeuert werden.
Das folgende Skript zeigt beispielhaft einige Operationen, bei denen ein Dokument nacheinander kopiert, eingecheckt, verschoben, umbenannt, ausgecheckt und gelöscht wird. Jede Aktion wird nach jeweils 5 Sekunden ausgeführt. Wenn Sie sich also 25 Sekunden Zeit nehmen, können Sie den Verlauf in der Dateiverwaltung verfolgen.
Beispiel:
Quelltext
<?php
include($_SERVER['DOCUMENT_ROOT'].'/weblication/grid.php');
$options = array('fireEvents' => true);
print "wRepository::copyDocument('/baseAssets/docs/test.pdf', '/baseAssets/docs/test-1.pdf', $options) ";
$rtc = wRepository::copyDocument('/baseAssets/docs/test.pdf', '/baseAssets/docs/test-1.pdf', $options);
print $rtc."<br />";
ob_flush();flush();sleep(5);
//exit;
print "wRepository::checkInDocument('/baseAssets/docs/test.pdf', $options) ";
$rtc = wRepository::checkInDocument('/baseAssets/docs/test.pdf', $options);
print $rtc."<br />";
ob_flush();flush();sleep(5);
//exit;
print "wRepository::moveDocument('/baseAssets/docs/test-1.pdf', '/baseAssets/test-1.pdf', $options); ";
$rtc = wRepository::moveDocument('/baseAssets/docs/test-1.pdf', '/baseAssets/test-1.pdf', $options);
print $rtc."<br />";
ob_flush();flush();sleep(5);
//exit;
print "wRepository::renameDocument('/baseAssets/test-1.pdf', 'test.pdf', $options); ";
$rtc = wRepository::renameDocument('/baseAssets/test-1.pdf', 'test.pdf', $options);
print $rtc."<br />";
ob_flush();flush();sleep(5);
//exit;
print "wRepository::checkOutDocument('/baseAssets/test.pdf', $options) ";
$rtc = wRepository::checkOutDocument('/baseAssets/test.pdf', $options);
print $rtc."<br />";
ob_flush();flush();sleep(5);
//exit;
print "wRepository::deleteDocument('/baseAssets/test.pdf', $options); ";
$rtc = wRepository::deleteDocument('/baseAssets/test.pdf', $options);
print $rtc."<br />";
?>- Wofür dient die Klasse wRepository?
- Die Klasse <code class="codeInline">wRepository</code> stellt Funktionen zur Verwaltung von Dokumenten bereit. Über sie können Dokumente kopiert, eingecheckt, verschoben, umbenannt, ausgecheckt und gelöscht werden.
- Warum sollte man Dokumente über wRepository statt direkt mit PHP-Dateioperationen verwalten?
- Bei der Verwaltung über <code class="codeInline">wRepository</code> wird sichergestellt, dass zum Beispiel der Index angepasst wird und auf Wunsch zugeordnete Ereignisse ausgelöst werden. Direkte PHP-Dateioperationen bieten diese zusätzliche Repository-Logik nicht automatisch.
- Welche Dokumentoperationen werden im Beispielskript gezeigt?
- Das Beispiel zeigt nacheinander folgende Operationen: Dokument kopieren, einchecken, verschieben, umbenennen, auschecken und löschen.
- Was bewirkt die Option <code class="codeInline">fireEvents => true</code> im Beispiel?
- Mit der Option <code class="codeInline">fireEvents => true</code> wird festgelegt, dass bei den Repository-Operationen die zugeordneten Ereignisse ausgelöst werden sollen.
- Wie läuft das Beispielskript zeitlich ab?
- Jede Aktion wird im Beispiel nach jeweils 5 Sekunden ausgeführt. Für den vollständigen Ablauf aller gezeigten Schritte sollte man sich daher etwa 25 Sekunden Zeit nehmen, um den Verlauf in der Dateiverwaltung zu verfolgen.
- Welches Dokument wird im Beispiel zuerst kopiert?
- Im Beispiel wird zuerst die Datei <code class="codeInline">/baseAssets/docs/test.pdf</code> nach <code class="codeInline">/baseAssets/docs/test-1.pdf</code> kopiert.
- Wie wird ein Dokument im Beispiel eingecheckt?
- Das Einchecken erfolgt mit <code class="codeInline">wRepository::checkInDocument('/baseAssets/docs/test.pdf', $options)</code>.
- Wie wird ein Dokument im Beispiel verschoben?
- Das verschieben erfolgt mit <code class="codeInline">wRepository::moveDocument('/baseAssets/docs/test-1.pdf', '/baseAssets/test-1.pdf', $options)</code>. Dabei wird die Datei aus dem Ordner <code class="codeInline">/baseAssets/docs/</code> nach <code class="codeInline">/baseAssets/</code> verschoben.
- Wie wird ein Dokument im Beispiel umbenannt?
- Das Umbenennen erfolgt mit <code class="codeInline">wRepository::renameDocument('/baseAssets/test-1.pdf', 'test.pdf', $options)</code>. Die Datei <code class="codeInline">test-1.pdf</code> wird dabei in <code class="codeInline">test.pdf</code> umbenannt.
- Wie wird ein Dokument im Beispiel ausgecheckt?
- Das Auschecken erfolgt mit <code class="codeInline">wRepository::checkOutDocument('/baseAssets/test.pdf', $options)</code>.
- Wie wird ein Dokument im Beispiel gelöscht?
- Das Löschen erfolgt mit <code class="codeInline">wRepository::deleteDocument('/baseAssets/test.pdf', $options)</code>.
- Welche Datei muss im Beispiel eingebunden werden, um das Framework zu laden?
- Im Beispiel wird das Framework über <code class="codeInline">include($_SERVER['DOCUMENT_ROOT'].'/weblication/grid.php');</code> eingebunden.
- Wann wurde der Beitrag veröffentlicht und wann zuletzt geändert?
- Der Beitrag wurde am 17. November 2009 veröffentlicht und am 03. November 2017 geändert.