Symfony Services im Konstruktor haben too few arguments

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

 

Ich beantworte mir die Frage mal selbst, falls vielleicht mal jemand anderes darüber stolpert.

 

Ich muss den Service als Parameter bei der Instanzerstellung mitgeben, also

  $this->client = new ApiClient(RestserviceTesting $restservice);

 

Ich ging fälschlicherweise davon aus, dass dies über den ServiceContainer automatisch passiert.