2016-12-30 15 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 

私はこれを実行しようとすると、私が得る:

はタイプのでAppBundle \サービス\ SomeOtherServiceの引数1をautowireすることはできません-hintedクラスが存在しません(Class BaseServiceInterfaceは存在しません)。

+0

あなたは同じ 'service.yml'ファイル内の' SomeOtherService'を登録していますか?これらのクラスの名前空間はすべて正しいですか? – Federkun

+0

@Federkunはい、コンストラクタから「インタフェース」を削除すると、そのインプリメンテーションを直接注入しています。インターフェイスを注入しようとすると、上記のエラーが返されます。 –

+0

あなたはあなたの 'base_service'に' autowiring_types:BaseServiceInterface'を追加しようとすることができますか? – Federkun

答えて

関連する問題