エンジニアのひよこ_level10

【毎日更新!】新卒3年目エンジニアブログです!

【Laravel】サービスコンテナでbind出来ない問題の対応【735日目】

サービスコンテナでbind

$this->app->bind(
    'App\Services\XxxServiceInterface',
    'App\Services\XxxService'
);
    public function __construct(XxxServiceInterface $xxx)
    {
        $this->xxx = $xxx;
    }

これでbindしておいたのに、XxxServiceInterfaceがインスタンス化出来ないとエラーが出た。

XxxServiceが呼び出されるはずが、bind出来てない?

キャッシュが問題かも

bindをした設定が、反映されてない。
もしかすると、設定がキャッシュされていて、設定が追加されてないからかも。

bind用のファイルに記述を追加したとかだと起こる。

bootstrap/cache/services.phpを確認してみて、内容追加されてなければそうかも

キャッシュを消すコマンド

php artisan clear-compiled

これで、生成済みのファイルを削除してくれるので、再度サイトにアクセスすると動くかも。

リリース時のCIとかにも混ぜておくと良き。