Signatur
Beschreibung
svn_auth_set_parameter() gehört zur PECL-Erweiterung svn und ermöglicht das Setzen von Authentifizierungsparametern, die von der Subversion-Bibliothek (libsvn) intern verwendet werden. Typische Anwendungsfälle sind die Angabe von Benutzernamen und Passwörtern für den Zugriff auf passwortgeschützte SVN-Repositories.
Die Parameter werden als Schlüssel-Wert-Paare übergeben. Für den Schlüssel stehen vordefinierte Konstanten bereit, z. B. SVN_AUTH_PARAM_DEFAULT_USERNAME und SVN_AUTH_PARAM_DEFAULT_PASSWORD. Diese Konstanten werden von der SVN-Erweiterung bereitgestellt und sorgen für eine sichere und konsistente Parameterübergabe.
Die Funktion muss vor dem eigentlichen SVN-Aufruf (z. B. svn_checkout(), svn_log()) aufgerufen werden, da die Parameter für alle nachfolgenden Operationen innerhalb des aktuellen PHP-Prozesses gelten. Wird die Funktion mehrfach mit demselben Schlüssel aufgerufen, überschreibt der letzte Aufruf den vorherigen Wert.
Zu beachten ist, dass diese Funktion Teil der PECL svn-Erweiterung ist und nicht im PHP-Kern enthalten ist. Sie muss daher separat installiert werden.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $key Pflicht | string | Der Name des Authentifizierungsparameters. Typischerweise eine der vordefinierten Konstanten wie SVN_AUTH_PARAM_DEFAULT_USERNAME oder SVN_AUTH_PARAM_DEFAULT_PASSWORD. |
|
| $value Pflicht | mixed | Der Wert des Authentifizierungsparameters. In der Regel ein string, z. B. der Benutzername oder das Passwort. Kann je nach Schlüssel auch andere Typen annehmen. |
Rückgabewert
Beispiele
Authentifizierung für SVN-Checkout setzen
<?php
// Authentifizierungsparameter setzen
svn_auth_set_parameter(SVN_AUTH_PARAM_DEFAULT_USERNAME, 'meinBenutzer');
svn_auth_set_parameter(SVN_AUTH_PARAM_DEFAULT_PASSWORD, 'meinPasswort');
// SVN-Checkout durchführen
$result = svn_checkout(
'https://svn.example.com/repos/meinprojekt/trunk',
'/var/www/checkout'
);
if ($result) {
echo 'Checkout erfolgreich.';
} else {
echo 'Checkout fehlgeschlagen.';
}
SVN-Log mit Authentifizierung abrufen
<?php
// Benutzerdaten setzen
svn_auth_set_parameter(SVN_AUTH_PARAM_DEFAULT_USERNAME, 'leser');
svn_auth_set_parameter(SVN_AUTH_PARAM_DEFAULT_PASSWORD, 'geheimesPasswort');
// Log-Einträge für ein Repository abrufen
$log = svn_log('https://svn.example.com/repos/meinprojekt/trunk', 1, SVN_REVISION_HEAD);
if ($log) {
foreach ($log as $entry) {
echo 'Revision ' . $entry['rev'] . ': ' . $entry['msg'] . PHP_EOL;
}
} else {
echo 'Fehler beim Abrufen des Logs.';
}
// Wichtig · Fallstricke
Sicherheitshinweis: Passwörter sollten niemals im Klartext im Quellcode hinterlegt werden. Nutzen Sie stattdessen Umgebungsvariablen oder verschlüsselte Konfigurationsdateien, um Zugangsdaten zu verwalten.
Die gesetzten Parameter gelten für den gesamten PHP-Prozess und werden nicht automatisch zurückgesetzt. Werden mehrere SVN-Repositories mit unterschiedlichen Zugangsdaten verwendet, muss svn_auth_set_parameter() vor jeder Gruppe von Operationen mit den passenden Werten aufgerufen werden.
Die PECL-Erweiterung svn befindet sich seit einigen Jahren im Wartungsmodus und wird nicht aktiv weiterentwickelt. Für neue Projekte sollte der Einsatz von svn über exec() oder moderne Versionierungssysteme wie Git in Betracht gezogen werden.