Автосервис в Symfony 4 (слишком мало аргументов) - PullRequest
0 голосов
/ 24 апреля 2018

У меня есть простая команда с конструктором, требующим LoggerInterface в качестве зависимости.

<?php

namespace App\Command;

// use (...)

class ProcessReportCommand extends Command
{
    /** @var LoggerInterface */
    private $logger;

    public function __construct(LoggerInterface $logger)
    {
        parent::__construct();
        $this->logger = $logger;
    }
    // (...)
}

Моя конфигурация в services.yml выглядит довольно по умолчанию:

parameters:

services:
    _defaults:
        autowire: true      
        autoconfigure: true 
        public: false      

    App\:
        resource: '../src/*'
        exclude: '../src/{Entity,Migrations,Exception,Tests,Kernel.php}'

    App\Controller\:
        resource: '../src/Controller'
        tags: ['controller.service_arguments']

К сожалению, я получаю сообщение об ошибке PHP о том, что зависимость не была введена.

Неустранимая ошибка PHP: Uncaught Symfony \ Component \ Debug \ Exception \ FatalThrowableError: Ошибка типа: слишком несколько аргументов для функционирования App \ Command \ ProcessReportCommand :: __ construct (), 0 передано в / home / tomasz / project / bin / console в строке 40 и ровно 1 ожидается в /home/tomasz/project/src/Command/ProcessReportCommand.php:17

Даже если я переключу эту зависимость на любой другой класс, который у меня есть под App\, он всегда будет вести себя так. Я буквально понятия не имею, что я должен сделать больше, чтобы это работало, во всех отношениях, даже тот, который явно включает службу внутри services.yml, не работает для меня. Любые подсказки?

1 Ответ

0 голосов
/ 24 апреля 2018

Ты очистил чай?php bin/console cache:clear.

Если это не сработает, каковы выходы php bin/console debug:container Process?

...