CakePHP3、CakePHP4のキャッシュをクリアする方法「bin/cake cache clear_all」を使う
2022/02/26
CakePHP3、CakePHP4では「bin/cake cache clear_all」を使ってキャッシュをクリア
「bin/cake cache clear_all」コマンドを使ってすべてのキャッシュを一括クリア
CakePHP3、CakePHP4のキャッシュをクリアするには下記のコマンドを実行します。
(この記事は、CakePHP3の記事として書きましたが、CakePHP4でも同様に動作することを確認しています。「CakePHP3」を「CakePHP4」と読み替えていただいて問題ありません。)
1 2 |
$ cd [CakePHPのルートフォルダ] $ bin/cake cache clear_all |
かつて、CakePHPでキャッシュをクリアする場合は、
CakePHP2の頃は「/app/tmp/cache/」フォルダの中身を、CakePHP3では「/tmp/cache/」フォルダの中身を手作業で削除していく必要がありました。
ですが、CakePHP3.3でキャッシュ削除するコマンドが追加されましたので、コマンドを入力することで、簡単にキャッシュを削除することができるようになりました。
また、コマンドが用意されたことで、
「このファイルキャッシュなのかな?」
「消していいのかな?」
「間違っていてプログラムが動かなくなったりしないかな?」
なんていう心配が要らなくなりました。
キャッシュのリストを表示させて個別に削除する方法
先に紹介した「bin/cake cache clear_all
」コマンドは「clear_all
」とあるように、キャッシュをまとめて全て削除するコマンドです。
キャッシュをまとめて全部消してしまっても問題ありませんが、場合によってはキャッシュを指定してクリアしたい場合もあるかもしれません。
その時のためにキャッシュを指定して削除する方法も用意されています。
まず、下記の「bin/cake cache list_prefixes
」コマンドでキャッシュのリストを表示させることができます。
1 2 3 4 5 |
$ bin/cake cache list_prefixes default _cake_core_ _cake_model_ _cake_routes_ |
続けて、下記のようにキャッシュを指定して削除を実行します。
1 |
$ bin/cake cache clear _cake_routes_ |
上記は、下記で解説したルーティング情報のキャッシュを削除する場合のコマンドです。
CakePHP3のルーティング(routes.php)の変更が反映されない時はキャッシュのクリアを
モデルのキャッシュをクリアしたい場合は「_cake_model_」を指定します。
CakePHP3、CakePHP4のキャッシュについて
CakePHP3、CakePHP4のキャッシュについては、下記のオフィシャルサイトを確認してください。
CakePHP3・Cookbook・キャッシュ
https://book.cakephp.org/3.0/ja/core-libraries/caching.html
CakePHP4・Cookbook・キャッシュ
https://book.cakephp.org/4/ja/core-libraries/caching.html
ここで紹介した「bin/cake cache clear_all」コマンドで
/tmp/cache/persistent/
/tmp/cache/models/
/tmp/cache/view/
フォルダの中の各ファイル、および
/tmp/cache/myapp_cake_routes_route_collection
などのキャッシュが削除されます。
また、デフォルトは、キャッシュをファイルとして保持する設定になっています。
それらの設定は「/config/app.php」ファイルに記載されていますが、下記の「bin/cake cache list_prefixes
」コマンドで表示される「_cake_core_」「_cake_model_」「_cake_routes_」などについては、その「/config/app.php」ファイルに記載されているコメントを読むと何についてのキャッシュなのかが分かります。
_cake_core_(CACHE_CAKECORE_URL)
Configure the cache used for general framework caching.
Translation cache files are stored with this configuration.
Duration will be set to ‘+2 minutes’ in bootstrap.php when debug = true
If you set ‘className’ => ‘Null’ core cache will be disabled.
一般的なフレームワークキャッシュに使用されるキャッシュを設定します。
翻訳キャッシュファイルはこの設定で保存されます。
debug = trueの場合、期間はbootstrap.phpで「+ 2分」に設定されます。
‘className’ => ‘Null’と設定すると、コアキャッシュは無効になります。
_cake_model_(CACHE_CAKEMODEL_URL)
Configure the cache for model and datasource caches.
This cache configuration is used to store schema descriptions, and table listings in connections.
Duration will be set to ‘+2 minutes’ in bootstrap.php when debug = true
モデルキャッシュとデータソースキャッシュ用にキャッシュを設定します。
このキャッシュ設定は、スキーマの説明とテーブルリストを接続に格納するために使用されます。
debug = trueの場合、期間はbootstrap.phpで「+ 2分」に設定されます。
_cake_routes_(CACHE_CAKEROUTES_URL)
Configure the cache for routes.
The cached routes collection is built the first time the routes are processed via config/routes.php
.
Duration will be set to ‘+2 seconds’ in bootstrap.php when debug = true
ルート用のキャッシュを設定します。
キャッシュされたルートコレクションは config / routes.php
でルートが最初に処理されたときに構築されます。
debug = trueの場合、所要時間はbootstrap.phpで ‘+ 2秒’に設定されます。
CakePHP3の関連記事
CakePHP4のCSS、JavaScript、画像のブラウザへのキャッシュをコントロールするCakePHP3でレコードを保存(追加、更新、Insert、Update)する複数の方法を紹介
CakePHP3でモデルなしフォームからCSVをアップロードしレコードを更新する方法解説
CakePHP3でPHP Simple HTML DOM Parserを使ってスクレイピングする方法
CakePHP3のInsert On Duplicate Key Update(upsert)構文を解説・バルク処理も
CakePHP3の1対多での連携を中間テーブルを使った多対多の連携に変更するときの手順
CakePHP3でデフォルトのソート条件を設定してユーザの選択肢たソート条件を有効にする方法
CakePHP3で Ajaxを使う方法の解説。3.6以降対応。Successとthenの両方を解説。
CakePHP3でパンくずの指定は HTMLヘルパーを使って指定する方法を解説
CakePHP3にOGPをfetch、asignを利用してテンプレートごとに指定する方法を解説
その他の「CakePHP3」に関する記事一覧
CakePHPのFlashエラーは出るが入力項目ごとのメッセージが出ないエラーの原因
CakePHP4のフラッシュメッセージの表示場所、デザインを変更する方法を解説
CakePHPで同一テーブル内の値を比較する条件でレコードを取得する方法
国際化と地域化の翻訳機能「__()」を使って定数に変数を埋め込む方法
CakePHP4で現在処理しているコントローラー名、アクション名を取得する方法
CakePHP4のCakeDC/Usersの Usersへの接続、バリデーションのカスタマイズ方法解説
CakePHP4のCakeDC/Usersの Usersへの接続、バリデーションのカスタマイズ方法解説
CakePHP4のメッセージ日本語化の設定(国際化と地域化の機能の使い方の解説)
CakePHP4で公開側と管理側のデザインテンプレートを分ける方法・setLayout()
CakePHP4でcontrollerで実行したバリデーションエラーをmodelのにマージする方法
その他の「CakePHP4」に関する記事一覧
GoogleAdwords
GoogleAdwords
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!
関連記事
-
CakePHPを学ぶ際にはオブジェクト指向を学ぼう
CakePHPはオブジェクト指向で書かれていますので、CakePHPを学ぶにはオブジェクト指向も学びましょう。
-
CakePHP4の定数定義ファイルを環境変数によって本番と開発を振り分ける方法解説
CakePHP4で開発環境と本番環境とで違う設定ファイルを読み込ませて環境ごとに定数を切り替える方法を解説。Apacheのhttpd.confに環境変数を設定しそれを読み込み判別する。
-
CakePHP 2.3 コマンドラインからPHPのシェル実行の方法解説
CakePHP 2.3でコマンドラインから CakePHPで記述した処理を実行する方法を解説します。
-
CakePHP 2.3 テーブルの項目を演算した結果を条件として抽出する方法
アソシエーション(連携)している先のテーブルの項目で演算をする場合の考え方と注意点をサンプルソースを用いて説明しています。分かってしまえば簡単です。
-
VirtualBoxにCakePHP3を設置。必要なCentOS、Apache、PHP、MySQL、Composerをインストールし設定する
VirtualBoxにCentOS、Apache、MySQL、PHPをインストールするところから初めてCakePHP3の開発環境を構築する手順を詳細解説。この記事1つで全ての設定が完了する。
-
CakePHP 2.3 bakeの超初心者向けフォロー講座
CakePHP 2.3 bakeの超初心者向けフォロー講座
-
CakePHP3で現在処理しているコントローラー名、アクション名を取得する方法
CakePHP3で現在処理しているコントローラー名、アクション名を取得する方法を解説。複数の方法があるが、getParam()メソッドを使う方法が汎用性があって便利かも。
-
CakePHP 2.3でOn Duplicate Key構文を実装
CakePHPで On Duplicate Key構文を Queryを利用して実装する方法をサンプルソース付きで解説します。
-
CakePHP3にWYSIWYGエディタのCKEditor4を設置、カスタマイズ方法を解説
WYSIWYGエディタであるCKEditor4をCDNを利用して簡単にCakePHP3に導入する方法とカスタマイズする方法を解説。CakePHP3にはページごとの振り分けを行うブロック化を利用する。
-
CakePHP3で保存前にバリデーション結果を取得する2つの方法
CakePHP3でデータベースに値を保存する前にバリデーションを行い、その結果によって処理を振り分ける方法について解説。「$topic->errors()」と「$topic->hasErrors()」の2つの方法がある。