Hallo,
ich arbeite gerade an einem Plugin, um Preise aus dem Shop nach Ebay zu übertragen. Dazu nutze ich diese SDK: https://github.com/davidtsadler/ebay-sdk-php
Folgendes Problem: Der Plugin-Manager verschluckt sich an der guzzlehttp dependency der SDK… Wenn ich den Plugin-Manager aufrufe, bekomme ich diese Fehlermeldung:
SyntaxError: Unexpected token <
at http://localhost/shopware5/engine/Library/ExtJs/ext-all.js?201708081547:21:5361
at Object.Ext.globalEval (http://localhost/shopware5/engine/Library/ExtJs/ext-all.js?201708081547:21:5369)
at Object.success (http://localhost/shopware5/backend/base?file=bootstrap&loggedIn=1502977820:530:5)
at Object.callback (http://localhost/shopware5/engine/Library/ExtJs/ext-all.js?201708081547:21:67496)
at i.onComplete (http://localhost/shopware5/engine/Library/ExtJs/ext-all.js?201708081547:21:422670)
at i.onStateChange (http://localhost/shopware5/engine/Library/ExtJs/ext-all.js?201708081547:21:422314)
at XMLHttpRequest. (http://localhost/shopware5/engine/Library/ExtJs/ext-all.js?201708081547:21:17406)
In der Console bekomme ich außerdem diesen Fehler:
{
"sourceClass": "Ext.JSON",
"sourceMethod": "decode",
"msg": "You're trying to decode an invalid JSON String: Fatal error: Unsupported operand types in \custom\plugins\RgEbaySync\vendor\guzzlehttp\guzzle\src\Client.php on line 236",
"message": "You're trying to decode an invalid JSON String: Fatal error: Unsupported operand types in \custom\plugins\RgEbaySync\vendor\guzzlehttp\guzzle\src\Client.php on line 236"
}
Das ist die Code Zeile 236 der Teufelsdatei:
$result = $options + $defaults;
Sie liegt in dieser Funktion:
private function prepareDefaults($options)
{
$defaults = $this->config;
if (!empty($defaults['headers'])) {
// Default headers are only added if they are not present.
$defaults['_conditional'] = $defaults['headers'];
unset($defaults['headers']);
}
// Special handling for headers is required as they are added as
// conditional headers and as headers passed to a request ctor.
if (array_key_exists('headers', $options)) {
// Allows default headers to be unset.
if ($options['headers'] === null) {
$defaults['_conditional'] = null;
unset($options['headers']);
} elseif (!is_array($options['headers'])) {
throw new \InvalidArgumentException('headers must be an array');
}
}
// Shallow merge defaults underneath options.
$result = $options + $defaults;
// Remove null values.
foreach ($result as $k => $v) {
if ($v === null) {
unset($result[$k]);
}
}
return $result;
}
Der eigentliche Spaß an der Sache ist, dass das Plugin einwandfrei funktioniert. Ich habe einfach das Laden der SDK auskommentiert, den Pluginmanager ohne Probleme gestartet, das Plugin aktiviert und danach im Code die SDK wieder „einkommentiert“. Das Plugin läuft wie ne eins, aber der Pluginmanager hat dann Bauchschmerzen…
Hatte vielleicht schon jemand das Problem und eine Lösung gefunden? Oder hat jemand eine Idee, was falsch läuft? Ich verstehe auch überhaupt nicht, warum er in dieser Zeile überhaupt iwas mit JSON-Dekodierung machen will…
Vielen Dank und schönen Gruß