فشل حقن الخدمة في وحدة تحكم Symfony

0

أقوم بإضافة ميزة إلى تطبيق Symfony 2.7. لدي وحدة تحكم تم تعريفها كخدمة ، وهي بدورها تأخذ خدمة أخرى. فيما يلي المحتويات ذات الصلة من ملف services.yml الخاص بي:

  app.service.video_derivative:
    class: MyCompany\AppBundle\Service\VideoDerivativeService
    arguments:
      - "@app.repository.video_derivative"
      - "@doctrine.orm.default_entity_manager"

  api.controller.video_derivative:
    class: MyCompany\AppBundle\Controller\VideoDerivativeController
    arguments:
      - "@app.service.video_derivative"

... والشفرة ذات الصلة في وحدة التحكم الخاصة بي تبدو كما يلي:

public function __construct(VideoDerivativeServiceInterface $videoDerivativeService)
{
    $this->videoDerivativeService = $videoDerivativeService;
}


/**
 * @param $id
 * @return JsonResponse
 *
 * @Route("/admin/video-derivative/create-by-clip-id/{id}", name="create_clip_by_id")
 */
public function byClipIdAction($id)
{
     $responseArray = [
         'foo' => 'bar',
         'baz' => 'qux',
         ];
     return new JsonResponse($responseArray);
}

... ولكن عندما أقوم بسحب وحدة التحكم الخاصة بي في متصفح ، أحصل على الرسالة التالية:

Catchable Fatal Error: Argument 1 passed to MyCompany\AppBundle\Controller\VideoDerivativeController::__construct() must be an instance of MyCompany\AppBundle\Service\VideoDerivativeServiceInterface, none given, called in /usr/src/app/app/cache/dev/classes.php on line 2200 and defined

... لذا يبدو أنني أفعل شيئًا خاطئًا. كيف يمكنك تصحيح هذا؟

1 إجابة

0

اتضح أن ما احتاجه هو هذا التعليق التوضيحي على الفصل:

/**
 * @\Sensio\Bundle\FrameworkExtraBundle\Configuration\Route(service="api.controller.video_derivative")
 */

بمجرد أن تم ذلك ، حصلت على خطأ أكثر فائدة وتمكنت من المضي قدمًا في التطوير.

:مؤلف

أسئلة ذات صلة

فوق
قائمة طعام