ノノログ

ホーム / ブログ / baserCMS / baserCMS3でキャッシュの設定時間を変える方法

baserCMS3でキャッシュの設定時間を変える方法

baserCMS3ではキャッシュの設定がデフォルトで +999 daysとかなり長く設定されている。
基本的には固定ページや、ブログページを更新したタイミングで全て削除されるので問題はないのだが、ちょっと特殊な場合、(独自に追加したコントローラやモデルが有る場合かな)にキャッシュ機能が問題で正しく表示されないことがある。

根本的には、独自拡張部分のイベントフックなどで対応するのがもしかしたら正しいのかもしれないが、キャッシュの時間を短くすることで適宜キャッシュを削除してくれるようになる。

キャッシュをoffにする記事は散見されたのだが、「キャッシュの時間を変更する」という記事が見つからなかったのでブログに残してみた。

キャッシュの設定ファイルについて

インストールしたサイトの/app/Config/core.php が実際に設定がされている場所になる。

変更場所について

Line:378 あたりの $durationにて設定されている。
例えば5分のキャッシュ有効時間に設定する場合は、
- $duration = '+999 days';
+ $duration = '+5 min';
と書き換えることでキャッシュの時間が変更される。

キャッシュの生成時間と有効時間について

baserCMSのキャッシュの有効時間にも少し癖がある。それは「キャッシュの有効時間はキャッシュファイルが生成された時に設定される」ところにある。
つまり、現在デフォルト作られているキャッシュファイルは変更後も+999dayで有効期間が設定されているのだ。

というわけで、キャッシュの有効時間を変更した場合は既に生成されているキャッシュを削除する必要がある。

キャッシュの手動削除について

キャッシュの手動削除にはここから可能。

※ もしくは、管理画面の上部「システム管理」メニューに移動し、サブメニューの「サーバキャッシュ削除」から削除可能。

おまけ

キャッシュを全てオフにする問題点

/app/Config/install.php Line:4 の
Configure::write('Cache.disable', false);

Configure::write('Cache.disable', true);
と変更すると、キャッシュを利用しない設定となる。

ただし、baserCMS及び、利用フレームワークのCakePHPはdispatcherの処理コストが結構かかる。
なのでキャッシュをオフにするより、できれば1分でもいいのでキャッシュを有効にしたい。