У меня проблемы с доступом к внедренной службе в конструкторе одного из моих контроллеров.
За http://symfony.com/doc/current/service_container/injection_types.html Мне кажется, что я правильно сделал инъекцию, однако, когда я пытаюсь загрузить представлениеиз контроллера я получаю следующую ошибку:
Argument 1 passed to Regions\AnalyticsBundle\Controller\PatternsController::__construct()
must be an instance of Regions\AnalyticsBundle\Controller\PatternCacheService, instance of
Regions\AnalyticsBundle\Service\PatternCacheService given, called
in /var/tmp/symfony/cache/dev/ContainerLoHUcSH/getPatternsControllerService.php on line 9
Кажется, что ошибка указывает на то, что подсказка типа в конструкторе пытается заставить его искать экземпляр в пространстве имен *\Controller\*
вместо *\Services\*
namespace - что я делаю не так или не вижу здесь?
Подробности моей настройки следующие:
Symfony 4.1.0, PHP 7.2.5
services.yaml
services:
...
pattern_cache_service:
class: Regions\AnalyticsBundle\Service\PatternCacheService
public: true
Regions\AnalyticsBundle\Controller\PatternsController:
arguments: ['@pattern_cache_service']
Контроллер:
namespace Regions\AnalyticsBundle\Controller;
class PatternsController extends BaseController
{
private $pcs;
public function __construct(PatternCacheService $pcs)
{
$this->pcs = $pcs;
}
}