Alle wichtigen Änderungen an diesem Projekt werden in dieser Datei dokumentiert.
Das Format basiert auf Keep a Changelog, und dieses Projekt folgt Semantic Versioning.
buildUrlQuery: Leererkey-Parameter (key='') wird nicht mehr als leerer Query-String (?key=) an die URL angehängt. Der Parameter wird entfernt, wenn weder Caller nochoptions['key']einen Wert liefern.- Edge-Case:
array('key' => '')als einziger Parameter erzeugt kein überflüssiges?mehr in der URL.
- 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 mitverify_ssl) - Korrektur: Request/Response-Debugging-Zugriff via
getHttpClient()statt->http - Alle Beispiele konsolidiert inkl. Custom Cache-Verzeichnis
- Eigene Cache-Verzeichnisse: Neue Option
cache_dirermö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
- Löst Probleme mit
- 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.phpmit 5 verschiedenen Anwendungsbeispielen - Technische Dokumentation:
CACHE_DIR_FIX.mdmit detaillierter Implementierungsdokumentation
SessionCache::__construct()akzeptiert jetzt optionalen$customCacheDir-ParameterSessionCache::getCacheDir()priorisiert eigenes Cache-Verzeichnis über plattformspezifische DefaultsOptions::getCacheDir()neue Methode zum Abrufen dercache_dir-OptionHttpClientübergibtcache_diraus Optionen anSessionCache- README aktualisiert mit
cache_dir-Dokumentation und Anwendungsbeispielen
- Session-Cache funktioniert jetzt in Umgebungen mit
open_basedir-Einschränkungen - Keine PHP-Warnungen mehr bei eingeschränkten Dateisystem-Zugriffen
Cache-Verzeichnis-Priorität:
- Eigenes Verzeichnis (wenn
cache_dirOption gesetzt) - Plattformspezifische Standard-Verzeichnisse
- Fallback auf
/tmp/odersys_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'
]
);- Erweitertes Error Handling: Feldspezifische Validierungsfehler werden jetzt erfasst und können über die
HttpClientExceptionabgerufen 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,MessageundReasonfür jeden Fehler
- Neue Methode
- Dokumentation: Umfassende Error-Handling-Dokumentation in
docs/ERROR_HANDLING.md - Beispiele: Neues Beispiel
examples/error_handling_example.phpzur Demonstration der Error-Handling-Features - SessionCache-Dokumentation: Technische Details zur
SessionCache-Klasse im README hinzugefügt
HttpClientExceptionerweitert um optionalen$fieldErrors-ParameterHttpClient::lookForErrors()extrahiert jetztFields-Array aus PROFFIX API Fehlerantworten- README aktualisiert mit Error-Handling-Sektion und SessionCache-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";
}
}
}- 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_cachingzum Aktivieren/Deaktivieren des Cachings
- PHP-Mindestversion auf 8.2 erhöht
HttpClientnutzt jetzt Session-Caching standardmäßig- Automatische Cache-Invalidierung bei 401-Fehlern
Siehe Git-Historie für Details zu früheren Versionen.