Fehler beim Aufruf von API Manager getResource('Article')

Hallo Community,

Wir haben seit einem Update von 5.5.3 auf 5.5.7 ein Problem beim Zugriff auf die Artikel Resource. Wichtig ist hier dass es sich nicht um die REST API sondern um den direkten Zugriff (in Shopware 4 ‘lokale API’ genannt) handelt der wie folgt aussieht:

 $articleResource = \Shopware\Components\Api\Manager::getResource('Article');

Funktionierte in 5.5.3 noch jedoch seit 5.5.7 schlägt dieser Call immer fehl. Zudem auch ohne sichtbare Exceptions im Log. Ein Custom Plugin geht folglich seit dem Update nicht mehr richtig und das Debugging erweist sich ebenfalls als äußerst schwierig.

Das seltsame daran ist, dass andere Resourcen wie z.B. Category, Order etc. weiterhin problemlos funktionieren z.b.

$categoryResource = \Shopware\Components\Api\Manager::getResource(‘Category’);

$orderResource = \Shopware\Components\Api\Manager::getResource(‘Order’);

 

Wir sind über jede Hilfe od. Hinweise dankbar.

@grpeha schrieb:

Funktionierte in 5.5.3 noch jedoch seit 5.5.7 schlägt dieser Call immer fehl. Zudem auch ohne sichtbare Exceptions im Log.

Wie macht sich das Problem genau bemerkbar bzw. woher weißt Du, dass es am Aufruf der Artikel-Ressource liegt, wenn Du keine Exception erhältst?

@LuckySilence schrieb:

@grpeha schrieb:

Funktionierte in 5.5.3 noch jedoch seit 5.5.7 schlägt dieser Call immer fehl. Zudem auch ohne sichtbare Exceptions im Log.

Wie macht sich das Problem genau bemerkbar bzw. woher weißt Du, dass es am Aufruf der Artikel-Ressource liegt, wenn Du keine Exception erhältst?

Weil die unmittelbar nächste Code-Zeile einfach nicht mehr ausgeführt wird. Das Problem liegt nicht direkt in der getResource(…) Methode sondern im weiteren Programmverlauf innerhalb von Shopware()->Container() in der doLoad(…) Methode zu passieren. Jedenfalls kommt kein Article Resource Objekt mehr retour und der PluginCode (wir über einen CronJob getriggert) hört dort zu laufen auf. 

Ist diese Art des Zugriffs wie oben beschrieben in Shopware 5.5 überhaupt noch unterstützt? Man findet nämlich in der aktuellen Dokumentation ja gar keine Informationen mehr zur damals verfügbaren “lokalen API”. Im neuen Developer Guide gibt es ja “nur” noch die REST API?

Die API Controller selbst bentzt getResource. Es wird gerade überlegt getResource in 5.6 zu deprecaten. Da es bloß ein Wrapper für die DI ist

Die Methode \Shopware\Components\Api\Manager::getResource() wurde kürzlich auf jeden Fall überarbeitet und wirft unter Umständen einen E_USER_DEPRECATED-Fehler  oder eine Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException .
Warum sie aber bei der Article-Ressource ein Problem erzeugt, weiß ich nicht.

Evtl. mal die betreffende Code-Stelle in ein try/catch einbetten und so eine mögliche Exception loggen.