今回は、PEAR::Cache_Liteを使って、
キャッシュの勉強をしました。

どんな動きをするのかというと、
まず、画面を表示した時点でキャッシュした時刻を表示。

なので、
2度目にアクセスしたり、ブラウザの更新ボタンをクリックしても、
キャッシュした時刻を表示します。

比較的、時間は短めに設定してありますが、
キャッシュクリアをするためのボタンも設置しました。

PEAR::Cache_Liteはこちらです。

キャッシュとは?

今回は、初回に訪問したときの時刻データをもったファイルを、
プログラムで指示する場所に作っています。

2回目の訪問からは、
まず、そのファイルを見に行くという感じですね。

それも、PEAR::Cache_Liteが、
ほとんどやってくれるので、楽です。

今後も、負荷分散などで、
応用していかなければいけないところなので、
とにかく、今回は感覚をつかみました。

Cache_Liteのサンプルプログラム

cache.php



<?php
ini_set('include_path', '**************************');
require_once('Cache/Lite.php');

$params=array(
    'cacheDir'=>'/tmp/',
    'lifeTime'=>600);
$cache=new Cache_Lite($params);
if($data=$cache->get('data')){
    print($data);
} else {
    $data=date('G:i:s');
    $cache->save($data,'data');
    print($data);
}

require_once('form.php');

?>

form.php


<html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>PEAR::Cache_Lite</title>
</head>
<body>

<form method="POST" action="./clear.php">
    <input type="submit" name="submit" value="キャッシュクリア" />
</form>

</body>
</html>

clear.php


<html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>PEAR::Cache_Liteでキャッシュクリア</title>
</head>
<body>

<?php

if(isset($_POST['submit'])){

ini_set('include_path', '************************');
require_once('Cache/Lite.php');

$params=array(
    'cacheDir'=>'/tmp/',
    'lifeTime'=>600);
$cache=new Cache_Lite($params);
    $cache->clean('default','ingroup');

    print("キャッシュをクリアしました。");
}

?>

<p><a href="http://www.working16h.com/ws/pear/cache/cache.php">PEAR::Cache_Liteに戻る</a></p>

</body>
</html>

PEARを使ったキャッシングまとめ

独習PHP今回お世話になったのも、独習PHP

だけど、今回は、画面を遷移させたり、
クリアボタンを作ってみたりと、
アレンジも、加えてみました。

今、同時並行でセキュリティについて学んでいます。

あと、
もう少ししたらフレームワークも、
行ってみます。

  • Symfony
  • CakePHP
  • Ethna

どれにしようかな?

【関連している記事】