エス技研

WordPress、CakePHP、PHP、baserCMSなどの Web系システムを中心に情報を提供します!


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」と読み替えていただいて問題ありません。)
 

 
かつて、CakePHPでキャッシュをクリアする場合は、
CakePHP2の頃は「/app/tmp/cache/」フォルダの中身を、CakePHP3では「/tmp/cache/」フォルダの中身を手作業で削除していく必要がありました。
 
 
ですが、CakePHP3.3でキャッシュ削除するコマンドが追加されましたので、コマンドを入力することで、簡単にキャッシュを削除することができるようになりました。
 
また、コマンドが用意されたことで、
「このファイルキャッシュなのかな?」
「消していいのかな?」
「間違っていてプログラムが動かなくなったりしないかな?」
なんていう心配が要らなくなりました。
 


 

キャッシュのリストを表示させて個別に削除する方法

 
先に紹介した「bin/cake cache clear_all」コマンドは「clear_all」とあるように、キャッシュをまとめて全て削除するコマンドです。
 
キャッシュをまとめて全部消してしまっても問題ありませんが、場合によってはキャッシュを指定してクリアしたい場合もあるかもしれません。
 
その時のためにキャッシュを指定して削除する方法も用意されています。
 
まず、下記の「bin/cake cache list_prefixes」コマンドでキャッシュのリストを表示させることができます。
 

 
続けて、下記のようにキャッシュを指定して削除を実行します。
 

 
上記は、下記で解説したルーティング情報のキャッシュを削除する場合のコマンドです。
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」に関する記事一覧
 
 
CakePHP4のFrozenDateで1ヵ月前、先月、今月1日、来月末の日付などを算出する方法
CakePHP4のcake cache clear_allでPermission deniedはパーミッションの変更が必要
CakePHP4のクリエビルダーを使用してOR条件をAND条件でつなぐSQL文を作る方法
CakePHP4のController内でViewテンプレート、レイアウトの変更設定を記述する方法
CakePHP4から外部のデータベースにアクセスする方法解説
CakePHP4の数値項目は「like %10%」の部分一致検索(find select)はできない
CakePHP4でロギングスコープやログレベルを使用してログを出し分ける方法を解説
CakePHP2、CakePHP3、CakePHP4、CakePHP5のバージョンを調べる 2つの方法
Windows上のXAMPP環境のCakePHPのコマンド実行時に環境変数を指定する方法
CakePHP4で複数の引数(パラメータ)を付与してコマンドを実行する方法
 
その他の「CakePHP4」に関する記事一覧
 
 

 - CakePHP 3.x 4.x ,

GoogleAdwords

GoogleAdwords

最後までお読みいただきましてありがとうございます。
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!

Message

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

下記の空欄を埋めてください。 * Time limit is exhausted. Please reload CAPTCHA.

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

※入力いただいたコメントは管理者の承認後に掲載されます。

  関連記事

CakePHP3のメール送信の処理・テンプレート使用・添付ファイル送信も解説
CakePHP3のメール送信の処理・テンプレート使用・添付ファイル送信も解説

CakePHP3からメールを送信する方法解説。基本的な記述方法を基にして、テンプレートを使う方法、ファイルを添付する方法へと拡張しながら解説。

CakePHPで Auto Incrementを外すと Duplicate entry '0' for keyのエラーが出るかも
CakePHPで Auto Incrementを外すと Duplicate entry ‘0’ for keyのエラーが出るかも

CakePHPでAuto Incrementの設定を変更したときに「Duplicate entry ‘0’ for key」のエラーが出た。原因はModel内で IDを編集する処理の追加を忘れていたからだった。

CakePHP4で「app_local.php」「.env」を利用して環境ごとの定数を振り分ける方法
CakePHP4で「app_local.php」「.env」を利用して環境ごとの定数を振り分ける方法

CakePHP4で.env、app_local.phpに定数を定義してそれを呼び出す方法の解説。Gitでは管理せず本番環境と開発環境とで異なる定数を定義するためそれを利用する方法。

CakePHP 2.3 ID以外のカラムでアソシエーション(連携)をさせる場合

ID以外のカラムでアソシエーション(連携)させるための考え方とサンプルソースを用いての説明を行っています。

CakePHP3のForm Helperの使い方のまとめ

CakePHP3になりフォームヘルパーの使い方も大きく変わりましたので、使い方をまとめました。基本的な使い方からプラスアルファの便利な使い方まで紹介。

CakePHP3で /Layout/defult.ctpにある titleタグ、h1タグを編集する方法
CakePHP3で /Layout/defult.ctpにある titleタグ、h1タグを編集する方法

CakePHP3でtitleタグ、h1タグのテキストをデフォルトから変更する方法を解説。テンプレートファイルに「$this->assign()」でテキストを指定して「/Layout/defult.ctp」で受け取る。

CakePHP3でkeywords、DescriptionをHTMLヘルパーを使って設定する
CakePHP3でkeywords、DescriptionをHTMLヘルパーを使って設定する

CakePHP3のkeywordsとdescriptionを設定する方法の解説。CakePHP3にはmetaタグを編集するHTMLヘルパーが用意されているためそれを利用すればOK!ポイントはブロック化を有効にすること。

CakePHP 2.3 Model、Controllerの見たい変数の中身をログ出力

CakePHPの Modelや Controllerの変数の中身をログとして出力して見る方法を提供します。

CakePHP4で現在処理しているコントローラー名、アクション名を取得する方法
CakePHP4で現在処理しているコントローラー名、アクション名を取得する方法

CakePHP3で現在処理しているコントローラー名、アクション名を取得する方法を解説。複数の方法があるが、getParam()メソッドを使う方法が汎用性があって便利かも。

CakePHP3でcomposerを利用してライブラリ・プラグインをインストールする方法

CakePHP3でcomposerを使ってパッケージ(ライブラリ、プラグイン)をインストールする方法の解説。PHPを使うのはCakePHP3が初めてというような方への使い方から解説。