LoginSignup
0
0

Laravelのキャッシュについて

Posted at

キャッシュとは

動作を高速化するため利用されます。

キャッシュの作り方

例えば、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
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0