Laravelでサービスプロバイダのキャッシュでちょっと詰まったので、 事象とその時とった解決手段についてまとめました。

gitを使っていて、とあるブランチでHelperというサービスプロバイダを追加。

$ php artisan make:provider HelperServiceProvider

config/app.phpにごにょごにょ追加したりして作業してました。

その後、別のブランチの作業があったのでブランチを 切り替えたところ、以下のようなエラーが発生しました。

Whoops, looks like something went wrong.
FatalThrowableError in ProviderRepository.php line 146:
Class 'App\Providers\HelperServiceProvider' not found

キャッシュクリアのコマンドを打っても意味がなく・・・

$ php artisan cache:clear
  [Symfony\Component\Debug\Exception\FatalThrowableError]
  Class 'App\Providers\HelperServiceProvider' not found
$ php artisan clear-compiled
  [Symfony\Component\Debug\Exception\FatalThrowableError]
  Class 'App\Providers\HelperServiceProvider' not found
$

調べてみると、このキャッシュが残っているのがいけないっぽかった。

$ ll bootstrap/cache/
合計 60
-rw-r--r-- 1 vagrant vagrant 47717 127 09:33 config.php
-rw-r--r-- 1 vagrant vagrant  9305 126 10:42 services.php
$

ので、消してみた。

$ rm -rf bootstrap/cache/*

一応コンフィグのキャッシュを作り治してアクセスしてみると・・・

$ APP_ENV=local php artisan config:cache

アクセスできました!よかった!