Skip to content

Latest commit

 

History

History
129 lines (95 loc) · 5.2 KB

File metadata and controls

129 lines (95 loc) · 5.2 KB

Changelog

Alle wichtigen Änderungen an diesem Projekt werden in dieser Datei dokumentiert.

Das Format basiert auf Keep a Changelog, und dieses Projekt folgt Semantic Versioning.

[2.2.1] - 2026-04-21

Behoben

  • buildUrlQuery: Leerer key-Parameter (key='') wird nicht mehr als leerer Query-String (?key=) an die URL angehängt. Der Parameter wird entfernt, wenn weder Caller noch options['key'] einen Wert liefern.
  • Edge-Case: array('key' => '') als einziger Parameter erzeugt kein überflüssiges ? mehr in der URL.

Geändert

  • README vollständig überarbeitet und für KI-Assistenten / AI Code Generation optimiert:
    • AI-Hint-Banner mit den wichtigsten Konzepten (automatischer Login, optionale Options, SHA256-Passwort)
    • Konstruktor-Signatur als PHP-Typdeklaration
    • Options-Tabelle mit korrekten Defaults (V4, vollständig mit verify_ssl)
    • Korrektur: Request/Response-Debugging-Zugriff via getHttpClient() statt ->http
    • Alle Beispiele konsolidiert inkl. Custom Cache-Verzeichnis

[2.2.0] - 2025-11-15

Hinzugefügt

  • Eigene Cache-Verzeichnisse: Neue Option cache_dir ermöglicht die Angabe eines eigenen Cache-Verzeichnisses für Session-Dateien
    • Löst Probleme mit open_basedir-Einschränkungen in Shared-Hosting-Umgebungen (z.B. Plesk)
    • Unterstützt beliebige Verzeichnisse: /tmp/, sys_get_temp_dir(), oder projektspezifische Pfade
    • Vollständig rückwärtskompatibel - bestehender Code funktioniert ohne Änderungen
  • Dokumentation: Umfassende Dokumentation der cache_dir-Option im README
    • Beispiele für verschiedene Hosting-Umgebungen
    • Cache-Verzeichnis-Priorität erklärt
    • Empfohlene Konfigurationen für Plesk und andere Shared-Hosting-Anbieter
  • Beispiele: Neue Datei example-custom-cache.php mit 5 verschiedenen Anwendungsbeispielen
  • Technische Dokumentation: CACHE_DIR_FIX.md mit detaillierter Implementierungsdokumentation

Geändert

  • SessionCache::__construct() akzeptiert jetzt optionalen $customCacheDir-Parameter
  • SessionCache::getCacheDir() priorisiert eigenes Cache-Verzeichnis über plattformspezifische Defaults
  • Options::getCacheDir() neue Methode zum Abrufen der cache_dir-Option
  • HttpClient übergibt cache_dir aus Optionen an SessionCache
  • README aktualisiert mit cache_dir-Dokumentation und Anwendungsbeispielen

Behoben

  • Session-Cache funktioniert jetzt in Umgebungen mit open_basedir-Einschränkungen
  • Keine PHP-Warnungen mehr bei eingeschränkten Dateisystem-Zugriffen

Technische Details

Cache-Verzeichnis-Priorität:

  1. Eigenes Verzeichnis (wenn cache_dir Option gesetzt)
  2. Plattformspezifische Standard-Verzeichnisse
  3. Fallback auf /tmp/ oder sys_get_temp_dir()

Verwendungsbeispiel:

$pxrest = new Client(
    'https://myserver.ch:999',
    'DEMO',
    'USR',
    'password',
    'ADR,STU',
    [
        'enable_session_caching' => true,
        'cache_dir' => sys_get_temp_dir() . '/proffix-cache'
    ]
);

[2.1.0] - 2025-11-12

Hinzugefügt

  • Erweitertes Error Handling: Feldspezifische Validierungsfehler werden jetzt erfasst und können über die HttpClientException abgerufen werden
    • Neue Methode hasFieldErrors(): Prüft, ob feldspezifische Fehler vorhanden sind
    • Neue Methode getFieldErrors(): Gibt ein Array mit allen Feldfehlern zurück
    • Neue Methode getDetailedMessage(): Gibt eine formatierte Nachricht mit allen Fehlerdetails zurück
    • Feldvalidierungsfehler enthalten Name, Message und Reason für jeden Fehler
  • Dokumentation: Umfassende Error-Handling-Dokumentation in docs/ERROR_HANDLING.md
  • Beispiele: Neues Beispiel examples/error_handling_example.php zur Demonstration der Error-Handling-Features
  • SessionCache-Dokumentation: Technische Details zur SessionCache-Klasse im README hinzugefügt

Geändert

  • HttpClientException erweitert um optionalen $fieldErrors-Parameter
  • HttpClient::lookForErrors() extrahiert jetzt Fields-Array aus PROFFIX API Fehlerantworten
  • README aktualisiert mit Error-Handling-Sektion und SessionCache-Details

Technische Details

Die PROFFIX REST API gibt bei Validierungsfehlern ein Fields-Array zurück, das bisher ignoriert wurde. Jetzt werden diese Details erfasst und können programmatisch abgerufen werden:

try {
    $response = $client->post('ADR/Adresse', $data);
} catch (HttpClientException $e) {
    if ($e->hasFieldErrors()) {
        foreach ($e->getFieldErrors() as $error) {
            echo "{$error['Name']}: {$error['Message']}\n";
        }
    }
}

[2.0.0] - 2024

Hinzugefügt

  • Session-Caching-Funktionalität zur Performance-Verbesserung
  • SessionCache-Klasse für dateibasiertes Session-Management
  • Automatische Session-Wiederverwendung über mehrere Requests
  • Plattformspezifische Cache-Verzeichnisse (Windows/Linux/Mac)
  • Option enable_session_caching zum Aktivieren/Deaktivieren des Cachings

Geändert

  • PHP-Mindestversion auf 8.2 erhöht
  • HttpClient nutzt jetzt Session-Caching standardmäßig
  • Automatische Cache-Invalidierung bei 401-Fehlern

[1.x.x] - Frühere Versionen

Siehe Git-Historie für Details zu früheren Versionen.