Hallo Community,
ich habe heute ein neues Plugin im Shopware Account angelegt und die Freigabe beantragt. Allerdings bekomme ich eine Warnung im Account mit dem Hinweis, dass checkLicense gefunden wird, aber nicht 1 zu 1 mit der Version im Account übereinstimmt. „checkLicense method was found, but does not match specification“
Die Meldung ist korrekt, entstand jedoch aus dem Umstand, dass ich eine Fehlermeldung bei der Installation bekomme, wenn eine Exception geworfen wird (kein Lizenzcode) – das Backend hängt sich daraufhin auf:
„ext-all.js? ___REVISION___ :21 Uncaught
h {sourceClass: "Ext.JSON", sourceMethod: "decode", msg: "You're trying to decode an invalid JSON String: :18↵↵", message: "You're trying to decode an invalid JSON String: :18↵↵"} [...]“
Oder auch:
„You're trying to decode an invalid JSON String: Class Pluginname\Exeption“
Keine Fehlermeldung bekomme ich, wenn ich die checkLicense Funktion so abändere, dass alle Exceptions einen Backslash bekommen = „\Exception“
OHNE BACKSLASH (ORIGINAL)
/**
* checkLicense()-method for PLUGINNAME
*/
public function checkLicense($throwException = true)
{
try {
/** @var $l Shopware_Components_License */
$l = Shopware()->License();
} catch (\Exception $e) {
if ($throwException) {
throw new Exception('The license manager has to be installed and active');
} else {
return false;
}
}
try {
[...]
}
if (!$r && $throwException) {
throw new Exception('License check for module "' . $module . '" has failed.');
}
return $r;
} catch (Exception $e) {
if ($throwException) {
throw new Exception('License check for module "' . $module . '" has failed.');
} else {
return false;
}
}
}
MIT BACKSLASH
/**
* checkLicense()-method for PLUGINNAME
*/
public function checkLicense($throwException = true)
{
try {
/** @var $l Shopware_Components_License */
$l = Shopware()->License();
} catch (\Exception $e) {
if ($throwException) {
throw new \Exception('The license manager has to be installed and active');
} else {
return false;
}
}
try {
[...]
}
if (!$r && $throwException) {
throw new \Exception('License check for module "' . $module . '" has failed.');
}
return $r;
} catch (Exception $e) {
if ($throwException) {
throw new \Exception('License check for module "' . $module . '" has failed.');
} else {
return false;
}
}
}
Ich verwende die neue Plugin-Struktur.
Der Fehler tritt auch auf, wenn ich die PLUGINNAME.php bis auf die Install Funktion und die checkLicense funktion leere… Ich war der Meinung, dass man darauf vertrauen könnte, dass die checkLicense funktioniert? Woran könnte das liegen?
Vielen Dank für eure Hilfe.