Laravel は内部のキャッシュを強く残す性質があるので、Apacheを再起動しても修正したプログラムが反映してくれないことがよくあります。
そんなときは、Artisanコマンドのキャッシュクリア系や最適化のコマンドを実行します。
Artisanコマンドのキャッシュクリア系のコマンドや最適化のコマンドはいろいろあるのですが、今回はそれをまとめてみました。
コマンド早見表
設定ファイルのキャッシュを作成
php artisan config:cache
そうしないと変更した設定情報が反映されません。
設定ファイルのキャッシュをクリア
php artisan config:clear
アプリケーションのキャッシュをクリア
php artisan cache:clear
ビューのキャッシュをクリア
php artisan view:clear
/storage/framework/views の中のファイルをクリアにします。
ルートのキャッシュを作成
ルートキャッシュを作り直します。
php artisan route:cache
routes.phpファイルを編集したら実行するといいです。
routes.php にクロージャを書いている場合はエラーになります。
ルートのキャッシュをクリア
php artisan route:clear
キーの作り直し
.env ファイルにある APP_KEY を作り直します。
新しくキーを作り直して、完全に前のキャッシュを無効にすることができます。
php artisan key:generate
autoloadを自動で生成
composer dump-autoload
git pull で大きな変更があった場合は実行するといいです。
ユースケース
Laravel の開発時に pull したりすると動かないときがあります。
そんなときはキャッシュを消したり、最適化してやります。
新しく追加したクラスが登録されていないことがあるからです。
以下のようなユースケースに遭遇した場合の手順を紹介します。
Laravel を本番環境にデプロイするときの手順
git pull でデータを取得したあとの手順です。.env ファイルの設定も終わっているとします。
1)composer.lock の内容でパッケージのインストール
$ composer install
composer install は内部で以下のコマンドが実行されます。
- composer dump-autoload
- php artisan clear-compiled
- php artisan optimize
2)configディレクトリ以下の設定ファイルのキャッシュを作成
$ php artisan config:cache
3)ルーティング定義のキャッシュを作成
$ php artisan route:cache
最適化・高速化の手順
最適化・高速化のやり方ですが、基本は composer install で実行されるコマンドを手動で実行する考えです。
$ php composer.phar dump-autoload
$ php artisan clear-compiled
$ php artisan optimize
全てのキャッシュをクリアにする
1)設定ファイルとルートのキャッシュを作成
2)ビューとアプリケーションのキャッシュをクリア
$ php artisan config:cache
$ php artisan route:cache
$ php artisan view:clear
$ php artisan cache:clear
上記のコマンドを実行しても動かない場合はロジックを疑ったほうがいいかもしれません。
キャッシュのクリア系・最適化については以上です。
仕事で Laravel を使っています。気づいたことや新しい発見など情報を発信していきます。問い合わせはこちら。