# Symfony Services im Konstruktor haben too few arguments

**URL:** <https://forum.shopware.com/t/symfony-services-im-konstruktor-haben-too-few-arguments/67671>\
**Category:** Programmierung\
**Created:** [15. Juni 2020 um 13:16 UTC](https://forum.shopware.com/t/symfony-services-im-konstruktor-haben-too-few-arguments/67671 "2020-06-15T13:16:45Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![squadhousemedia](https://avatars.discourse-cdn.com/v4/letter/s/a6a055/32.png) [@squadhousemedia](https://forum.shopware.com/u/squadhousemedia)\
**Post date:** [15. Juni 2020 um 13:16 UTC](https://forum.shopware.com/t/symfony-services-im-konstruktor-haben-too-few-arguments/67671/1 "2020-06-15T13:16:45Z")

</div>

Ich binde aktuell über folgenden **Service.xml** Eintrag den Service RestServiceTesting auf meinen Controller.

&nbsp;

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);
....

```

&nbsp;

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**_  
&nbsp;

**ApiClient.php**

```
use Swag\RestApiHandling\Service\RestService;

class ApiClient
{

    private $restService;

    public function __construct(RestService $restService)
    { $this->restService = $restService;
    }

 &nbsp;

```

Die aufrufende File **Repository.php**

```
  $this->client = new ApiClient();

```

&nbsp;

Und die entsprechende Erweiterung in der **services.xml**

&nbsp;

---

<div class="post-metadata">

**Author:** ![squadhousemedia](https://avatars.discourse-cdn.com/v4/letter/s/a6a055/32.png) [@squadhousemedia](https://forum.shopware.com/u/squadhousemedia)\
**Post date:** [19. Juni 2020 um 12:20 UTC](https://forum.shopware.com/t/symfony-services-im-konstruktor-haben-too-few-arguments/67671/2 "2020-06-19T12:20:21Z")

</div>

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

&nbsp;

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

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

```

&nbsp;

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