Signatur
Beschreibung
svn_fs_node_prop() liest den Wert einer benannten Eigenschaft eines Knotens (Datei oder Verzeichnis) aus dem Subversion-Dateisystem aus. Dabei wird über ein Filesystem-Root-Handle ($fsroot) auf eine bestimmte Revision oder eine Transaktion zugegriffen.
Subversion-Knoten können beliebige benutzerdefinierte Eigenschaften (Properties) tragen, zum Beispiel svn:mime-type, svn:keywords, svn:eol-style oder eigene Metadaten. Diese Funktion erlaubt es, den Wert einer solchen Eigenschaft direkt aus der internen Dateisystem-Repräsentation abzurufen, ohne den Arbeitsbereich zu benutzen.
Die Funktion setzt die PHP-Erweiterung svn (PECL) voraus und arbeitet auf Low-Level-Ebene direkt mit dem Subversion-Repository-Dateisystem. Sie wird typischerweise in Kombination mit svn_repos_fs() und svn_fs_revision_root() oder svn_fs_begin_txn2() verwendet.
Ist die angegebene Eigenschaft am Knoten nicht gesetzt, wird ein leerer String zurückgegeben.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $fsroot Pflicht | resource | Ein Dateisystem-Root-Handle, das über svn_fs_revision_root() oder svn_fs_txn_root() erzeugt wurde und den Zugangspunkt zu einem bestimmten Revisionsstand im Repository darstellt. |
|
| $path Pflicht | string | Der Pfad des Knotens (Datei oder Verzeichnis) im Repository, dessen Eigenschaft abgefragt werden soll. Zum Beispiel /trunk/src/main.php. |
|
| $propname Pflicht | string | Der Name der Eigenschaft, die ausgelesen werden soll. Beispiele: svn:mime-type, svn:keywords oder ein benutzerdefinierter Name wie custom:author. |
Rückgabewert
false zurückgegeben werden.Beispiele
MIME-Typ einer Datei aus einer bestimmten Revision lesen
<?php
// Repository öffnen
$repos = svn_repos_open('/var/svn/myrepo');
// Dateisystem des Repositories holen
$fs = svn_repos_fs($repos);
// Root für Revision 42 holen
$fsroot = svn_fs_revision_root($fs, 42);
// Eigenschaft svn:mime-type der Datei auslesen
$mimeType = svn_fs_node_prop($fsroot, '/trunk/public/index.html', 'svn:mime-type');
if ($mimeType !== '' && $mimeType !== false) {
echo "MIME-Typ: " . $mimeType . PHP_EOL;
} else {
echo "Eigenschaft nicht gesetzt." . PHP_EOL;
}
?>
Benutzerdefinierte Eigenschaft eines Verzeichnisses auslesen
<?php
// Repository öffnen
$repos = svn_repos_open('/var/svn/myrepo');
$fs = svn_repos_fs($repos);
// Neueste Revision ermitteln
$latestRev = svn_fs_youngest_rev($fs);
$fsroot = svn_fs_revision_root($fs, $latestRev);
// Benutzerdefinierte Eigenschaft lesen
$owner = svn_fs_node_prop($fsroot, '/trunk', 'custom:owner');
echo $owner !== '' && $owner !== false
? "Eigentümer: " . htmlspecialchars($owner)
: "Eigenschaft 'custom:owner' ist nicht gesetzt.";
?>
// Wichtig · Fallstricke
PECL-Erweiterung erforderlich: Diese Funktion ist Teil der svn-PECL-Erweiterung, die separat installiert werden muss und nicht im Standard-PHP-Paket enthalten ist. Die Verfügbarkeit im Produktivbetrieb ist daher nicht garantiert.
Fehlerbehandlung: Bei ungültigem $fsroot-Handle oder einem nicht existierenden Pfad kann die Funktion Warnungen ausgeben oder false zurückliefern. Daher sollte der Rückgabewert stets auf false und auf leeren String geprüft werden.
Kodierung: Eigenschaftswerte werden als rohe Byte-Strings zurückgegeben. Bei der Ausgabe in HTML sollte htmlspecialchars() verwendet werden, um XSS zu vermeiden.