キャッシュとは
動作を高速化するため利用されます。
キャッシュの作り方
例えば、config
ディレクトリにある設定ファイルのキャッシュを作成する場合
php artisan config:cache
を実行することで作成されます。
他にもルートのキャッシュやviewのキャッシュなど、様々な種類があります。
何が起きているのか
上記のコマンドでキャッシュ作成コマンドが実行されると
/bootstrap/cache/config.php
というファイルが作成されます。これこそがキャッシュの正体です。
このファイルの中身は、主にconfig
ディレクトリ内のファイルの中身が全て纏められたものであり、このファイルが作られると今後はこの設定を参照するようになります。
.
├── app
├── bootstrap/
│ ├── cache/
│ ├── config.php ←キャッシュファイル
│ ├── ...
├── config/ ←このディレクトリの中身全てが纏められる
│ ├── app.php
│ ├── broadcasting.php
│ ├── cors.php
│ ├── filesystems.php
│ ├── logging.php
│ ├── queue.php
│ ├── services.php
│ ├── view.php
│ ├── auth.php
│ ├── cache.php
│ ├── database.php
│ ├── hashing.php
│ ├── mail.php
│ ├── sanctum.php
│ └── session.php
├── database
└── ...
例えば、/config/app.php
の中に
'name' => env('APP_NAME', 'Laravel'),
という記述があると思いますが、キャッシュファイルを作った後にここを編集しても、その変更は反映されません。代わりに、キャッシュファイルの
<?php return array(
'app' => array(
'name' => 'Laravel',
'env' => 'local',
...
の'Laravel'
部分を直接編集すると、その値が反映されます。
envとの関係性
Laravelには
env('AAA', 'bbb');
という関数があります。
第一引数のキーが.envに設定されてあればそちらを。なければ第二引数を返します。
こちら、キャッシュファイルが作成されると、.envファイルがロードされなくなってしまい、全てnullが返ってくるようになってしまいます。
キャッシュの消し方
php artisan config:clear
これを実行することで、キャッシュが削除されます。
ショートカット
キャッシュを作成するショートカットが存在します。
php artisan optimize
これを実行することで、以下が全て実行されます。
- php artisan config:cache
- php artisan route:cache
また、キャッシュを削除するショートカットもあります。
php artisan optimize:clear
これを実行することで、以下が全て実行されます。
- php artisan event:clear
- php artisan view:clear
- php artisan cache:clear
- php artisan route:clear
- php artisan config:clear
- php artisan clear-compiled