Hallo Davor,
kein Problem, jeder baut mal Bugs ein ;-) Mit einer komfortablen Logging-Funktion wäre ich dem nur schneller auf die Schliche gekommen...
Dazu noch eine kleine Präzisierung: Die eigene Funktion bzw. Methode, die ich setLogger() übergeben würde, sollte vier Parameter akzeptieren: Request (GET,PUT, etc), URL (um solche Bugs schneller zu finden), sowie den "raw" request body ebenso wie die Antwort. Oder anstatt vier Parameter ein Objekt, welches diese vier properties hat...
Ja, die Übergabe der Daten als JSON-String ist "etwas" umständlich... vor allem da man für die Antwort ja festlegen kann, ob sie als String oder als Objekt zurückkommt... wäre schön wenn man das auch global für die zu sendenden Daten ginge!
Aber dann bitte nicht als Array, sondern als Objekt - oder einstellbar.
Ich habe mir bereits eine kleine "wrapper" Klasse geschrieben, damit ich so etwas tun kann:
// create client
$client = new stdClass();
$client->first_name = $order->billing_first_name;
...
$bmApi = new BillomatAPI();
$client_id = $bmApi->addClient($client);
In "meinem" Code sollte es eigentlich so funktionieren, dass ich ein neues Objekt erzeuge, dieses sende und dann direkt die erzeugte ID zurückbekomme - oder den erzeugten Eintrag, aber nicht die komplette Antwort.
Aber Du musst nicht alle Wünsche von mir in billoWrap einbauen - es ist ja kein Problem eine eigene Klasse zu schreiben, die billowrap.php als Elternklasse erweitert. Nur die Sache mit dem optionalen Logging sollte von billowrap direkt unterstützt werden...
Nur aus Neugierde: Was war denn für Dich der Anlass, billowrap zu entwickeln? Du hast doch sicher auch ein eigenes Projekt in dem Du es verwendest... und wirst ungern größere Änderungen vornehmen, die wieder Änderungen an Deinem Projekt nach sich ziehen würden...
grüße,
Matthias