Was muss ich tun, damit dies funktioniert?symfony: autowinding eine Schnittstelle
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;
}
}
meine service.yml sieht wie folgt aus:
base_service:
class: AppBundle\Service\BaseService
autowire: true
Wenn ich versuche, dies zu laufen bekomme ich:
Kann nicht autowire Argument 1 für AppBundle \ Service \ SomeOtherService weil der Typ -gegliederte Klasse existiert nicht (Class BaseServiceInterface existiert nicht).
haben Sie den 'SomeOtherService' im gleichen' service.yml' Datei registrieren? Sind alle Namensräume dieser Klasse korrekt? – Federkun
@Federkun ja, wenn ich die "Schnittstelle" aus dem Konstruktor = entfernen, was bedeutet, dass ich direkt die Implementierung injiziere, funktioniert es. Wenn ich versuche, die Schnittstelle zu injizieren, wird ein Fehler zurückgegeben, der oben erwähnt wurde. –
können Sie versuchen, Ihrem 'base_service' 'autowiring_types: BaseServiceInterface' hinzuzufügen? – Federkun