Documents

Laravelのキャッシュの削除と最適化コマンド


Laravelの開発・運用で大切なコマンドたちです。設定がうまく反映されてないとか想定と違う動きをするとかそういうとき、本番デプロイ時など実行します。キャッシュの削除、オプティマイズ、キャッシュの再生成などです。

キャッシュクリア系

php artisan cache:clear
php artisan config:clear
php artisan route:clear
php artisan view:clear

cache:clearはキャッシュ全般を対象に削除、config:clearは.envなどに設定したもの、それを読み込んだapp.confgなどの設定パラメータキャッシュの削除、route:clearはroutes.phpで設定されたアクセスパスとコントローラーの紐付け部分のキャッシュ削除、view:clearはbladeなどのテンプレート関連のキャッシュ削除になります。APIのみで運用しているときなかはview:clearは不要になります。
開発中にはちょくちょく実行するコマンドになります。

コンパイル・最適化・キャッシュ生成

主に本番デプロイ時やある程度システムが完成した際にテストする前などに行うものです。また新たなクラス定義やファイル定義を行うたびに実行します。

composer dump-autoload
php artisan clear-compiled
php artisan optimize
php artisan config:cache

composer dump-autoloadautoloadを自動で生成してくれるコマンドです。以下のファイルが生成されるようです。

autoload_classmap.php
autoload_files.php
autoload_namespaces.php
autoload_psr4.php
autoload_real.php

composer installでパッケージインストールと同時に実行されます。
artisan clear-compiled
以下2つのファイルを削除します。

/bootstrap/cache/services.json
/bootstrap/cache/compiled.php

artisan optimizeの中身はcomposer dump-autoload --optimize の実行になってます。フレームワークのコードを結合して一つのファイルに纏める作業をしているようです。(/bootstrap/cache/compiled.php
/config/compile.php の files ブロックににキャッシュ対象のクラスを書けば一緒に結合されるようです。最新のLaravelではあんまり意味がなさそうですが。

php artisan optimizeは削除され予定という噂を聞きましたが、実行しているみるとエラーにはなりませんのでまだ使い続けてもよさそう。
https://readouble.com/laravel/5.5/ja/upgrade.html


開発時のコマンドとデプロイ時のコマンド

とりあえず全部やっておけば問題なさそうですが、結構な時間がかかってしまうので、ちょこちょこ用途に分けて使い分けた方がよいかもしれないです。まとめてやっちゃう場合は以下のコマンドをばbashとかで実行するのがよさそう。

composer update;
php artisan clear-compiled;
php artisan cache:clear;
php artisan view:clear;
php artisan route:clear;
php artisan config:clear;

composer dump-autoload;
php artisan clear-compiled;
php artisan optimize;
php artisan config:cache;



2022.03.24