ColorFullWeb

カラーがフルな情報配信ブログ。Web関係多め。

[¢]【コピペ】デザイナーがPHPでキャッシュしたら。【PEAR::Cache_Lite】

time 2013/11/24

bkr

最近、WEBサービスをいくつか作ってみたColorFullWebです。
運営のセキュリティ上、制作サイト情報は非公開ですが、これからもまたいろいろ作っていきたいですv

結構キャッシュって大事。

公開したWEBサービスのうちの一つにWEBAPIを使って別サイトの情報を使用しているのですが、
「アクセス数=別サイトへのリクエスト」に近いのでキャッシュさせなければいけませんでした。

外部API系のWEBサービスでは必須

結構JSONデータなどをキャッシュに持たせておかなければならない場面があると思います。
今回はPEAR::Cache_Liteでファイルベースのキャッシュです。
PEAR::Cache_Liteはとっても簡単なのでお試しあれ!
名前通り、とってもライト!

まずCache_Liteをダウンロード

PEAR::Cache_Liteをダウンロード

設置

ダウンロードフォルダ内の「Cache」フォルダごとFTPとかでアップロード
個人的には、コマンドから使うよりファイルアップロードの方が直観的だと思っています。

コピペ用サンプルコード

「Cache」フォルダと同じ階層に
「index.php」を作成してコードをコピペで動きます。

今回キャッシュするのは「NAVER」さんのRSSフィードです。
(APIだとアクセストークンとかいろいろ大変なので)
ブラウザでキャッシュメッセージと簡素なRSSデータのみが表示される用になってます。
エスケープ処理などしていないのでxamppとかで試した方がいいと思います。

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <title>ColorFullCache</title>
</head>
<body>

  <?php 

    //--------------------------------------------------------パッケージの読み込み
    require_once("./Cache/Lite.php");



    //--------------------------------------------------------初期設定
    $options = array(
        'cacheDir' => './Cache/',//保存Dir
        'lifeTime' => 3600,//time
        'automaticSerialization' => 'true'//配列などの使用
    );
    $cache = new Cache_Lite($options);//コンストラクタ


    //--------------------------------------------------------表示整形用
    echo '<pre>';


    //--------------------------------------------------------実際の処理
    if ($data = $cache->get('id_of_the_page')) {//キャッシュデータの読み込み

        //キャッシュファイルがあった場合の処理
        echo '▼▼▼▼▼▼キャッシュ済みファイルからの読み込み▼▼▼▼▼▼<br><br><br><br>';
        $xmlData = json_decode($data);
        print_r($xmlData);

    } else {

        //キャッシュファイルがない、もしくは期限切れの場合の処理
        $xml = simplexml_load_string(file_get_contents('http://matome.naver.jp/feed/hot'));//キャッシュさせるデータ(NAVERまとめRSS)
        $naverData = json_encode($xml);//xmlをjsonにエンコード
        $data = $naverData;
        $cache->save($data);//キャッシュ作成
        echo '▼▼▼▼▼▼下の内容をキャッシュしました(次のリロードが速くなります)▼▼▼▼▼▼<br><br><br><br>';
        print_r($xml);

    }

  ?>


</body>
</html>

キャッシュしたあと

今回は‘./Cache/’としたので
先ほどアップロードした「Cache」フォルダ内にイミフな文字列ファイル名のファイルが作成されたはずです。
それがキャッシュファイルです。

【余談】Pixivランキング作ってみました!!

イラストアンテナ | Pixiv早見ランキング

PixivAPI叩きました。


まぁこれはWEBサービスとは言えないですね。
ガッツリ自分用だしww(・。・)
PixivAPIは公式ではないから(確か今はそんな感じじゃなかったっけ?)
大々的に宣伝とか、詳しい作り方とかはあんまり載せられないんですが
見ていて結構楽しいのでコチラもどうぞご贔屓に。

あんまりAPI元に迷惑かけちゃダメだぞ!笑
みんなも気をつけようねっ!

facebookはコチラ。(;´Д`)ノジュウバイガエシダ

down

コメントする