Ich binde aktuell über folgenden Service.xml Eintrag den Service RestServiceTesting auf meinen Controller.
Dies funktioniert beim Aufruf der Route "apitesting/importtesting" auch ganz wunderbar:
class myFancyController extends StorefrontController {
private $restService;
public function __construct(RestServiceTesting $restService)
{ $this->restService = $restService;
}
/**
* @RouteScope(scopes={"storefront"})
* @Route("/apitesting/importtesting", name="frontend.something.importSomething", options={"seo"="false"}, methods={"GET"})
*/
public function importSomething(SalesChannelContext $context)
{ $response = $this->restService->request('GET', 'category');
$body = json_decode($response->getBody()->getContents(), true);
....
Nun versuche ich den gleichen Service in einer anderen PHP Klasse ApiClient.php bei der Erstellung des Objekts zu nutzen, bekomme aber folgenden Fehler:
Too few arguments to function Swag\RestApiHandling\Core\ApiClient::__construct(), 0 passed in /html/shopware/custom/plugins/RestApiHandling/src/App/Model/Repository/Repository.php on line 26 and exactly 1 expected
ApiClient.php
use Swag\RestApiHandling\Service\RestService;
class ApiClient
{
private $restService;
public function __construct(RestService $restService)
{ $this->restService = $restService;
}
Die aufrufende File Repository.php
$this->client = new ApiClient();
Und die entsprechende Erweiterung in der services.xml