2016-12-30 2 views
9

Что мне нужно для того, чтобы сделать эту работу?symfony: автоувеличивание интерфейса

interface BaseServiceInterface { 
    public function getRecords(); 
} 

class BaseService implements BaseServiceInterface{ 
    public function getRecords(){ 
     return "bla"; 
    } 
} 


class SomeOtherService{ 

    private $baseService; 

    public function __construct(BaseServiceInterface $baseService){ 
     $this->baseService = $baseService; 
    } 
} 

мой service.yml выглядит следующим образом:

base_service: 
    class: AppBundle\Service\BaseService 
    autowire: true 

Когда я пытаюсь запустить это я получаю:

Может не autowire аргумент 1 для AppBundle \ Service \ SomeOtherService потому типа -hinted класс не существует (класс BaseServiceInterface не существует).

+0

вы зарегистрировать 'SomeOtherService' внутри той же' service.yml' файл? Являются ли все пространства имен этого класса правильными? – Federkun

+0

@Federkun да, когда я удаляю «Интерфейс» из конструктора = означает, что я прямо впрыскиваю реализацию, в которой он работает. Когда я пытаюсь ввести интерфейс, он возвращает ошибку, упомянутую выше. –

+0

можете ли вы добавить 'autowiring_types: BaseServiceInterface' в свой' base_service'? – Federkun

ответ

Смежные вопросы