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
私はこれを実行しようとすると、私が得る:
はタイプのでAppBundle \サービス\ SomeOtherServiceの引数1をautowireすることはできません-hintedクラスが存在しません(Class BaseServiceInterfaceは存在しません)。
あなたは同じ 'service.yml'ファイル内の' SomeOtherService'を登録していますか?これらのクラスの名前空間はすべて正しいですか? – Federkun
@Federkunはい、コンストラクタから「インタフェース」を削除すると、そのインプリメンテーションを直接注入しています。インターフェイスを注入しようとすると、上記のエラーが返されます。 –
あなたはあなたの 'base_service'に' autowiring_types:BaseServiceInterface'を追加しようとすることができますか? – Federkun