その場合、キャッシュはリアルタイムに取得したデータではないので、リアルタイムな情報とは差異が出る場合があります。1時間位のキャッシュならまだしも数日、数週間、数カ月とキャッシュする場合もあるかと思います。また、キャッシュも1時間位のキャッシュだと結局は期限切れで毎回APIのサーバーに問い合わせる事になったりして効率も悪かったりします。それで長期間のキャッシュの場合は、キャッシュした日時を更新日時として表示したりします。(WEB APIの規約で表示を義務づけていたりする場合もあります。)
とりあえず下は、WEBページにアクセスしてキャッシュするサンプルです。
名前空間は、指定した名前でキャッシュをそれ専用のフォルダ配下で管理する為のフォルダ名みたいな感じ。キャッシュルートの下にできるフォルダ名になります。
キャッシュ期限は、キャッシュの期限が切れるまでの秒数。3600なら1時間86400なら24時間です。
実際にコマンドプロンプトから実行してみると、最初はnot definedが表示されて、二回目はdefinedになってキャッシュされているのがわかります。キャッシュ期限を数十秒とか短めにしてみるとキャッシュ期限が切れて再度not definedになるのがわかります。
そして、作成されたキャッシュファイルを無理やりテキストエディタで開いてみると、Cache::ObjectやExpires_atやCreated_at等何やら気になる情報があります。作成日時や期限切れ日時の情報を普通に内部に持っている様ですね。
コマンドプロンプトで実行してみると、以下のようになりました。どうやらうまくいったようです。
とりあえず、これでキャッシュ作成日時やキャッシュ期限の日時を取得する事ができるようになりました。
こちらの記事によると、期限切れキャッシュの削除にはPurge()ではなくpurge()を使うべきなようです。Purge()の場合はパラメータでパスを指定する必要があるようです。