PHP 用 YAML パーサ spyc の結果をキャッシュする方法

<?php
class CacheYAML
{
    var $cache_dir;
    var $filename;
    var $cache_filename;

    function CacheYAML($cache_dir, $filename)
    {
        $this->cache_dir = $cache_dir;
        $this->filename = $filename;
        $this->cache_filename = $cache_dir . DIRECTORY_SEPARATOR . md5($filename);
    }

    function getData()
    {
        return $this->isCached() ? $this->load() : $this->store();
    }

    function isCached()
    {
        clearstatcache();
        return file_exists($this->cache_filename) && (filemtime($this->filename) <= filemtime($this->cache_filename));
    }

    function load()
    {
        return unserialize(file_get_contents($this->cache_filename));
    }

    function store()
    {
        $data = Spyc::YAMLLoad($this->filename);
        $f = fopen($this->cache_filename, 'wb');
        fwrite($f, serialize($data));
        fclose($f);
        return $data;
    }
}
?>


- 使い方

// 使用前
$config = Spyc::YAMLLoad($file);

// 使用後
$yaml = new CacheYAML('path/to/cache_dir', $file);
$config = $yaml->getData();


  元ネタの記事では,parse_ini_file() をキャッシュしていたので,いつも遅いと感じていた spyc の結果をキャッシュするようにしてみた.
  体感できるくらい速くなりました.

  PHP 5.x を使っている場合は,fopen ... fclose の部分を file_put_contents() で置き換えることができます.

  # ところで YAML ってなんて読むんだろう?わいえーえむえる?やむる?

- file_put_contents
  http://php.net/file_put_contents

- ref.: Sooey - CachedIni class
  http://www.sooey.com/journal/2006/03/15/100/

Firefox のブックマークのアイコンを好きなアイコンに変更する拡張機能 Favicon Picker

  http://forums.mozillazine.org/viewtopic.php?t=321562

  Favicon Picker

  コメント欄で教えてもらいました.ありがとうございます.

  使い方は,拡張をインストールして,ブックマークのプロパティを開くと,上記のような画面が出てきます.
  Icon が追加されていますので,[Browse...] で好きな画像を登録することができます.
  選択した画像は,16x16 に拡大縮小されるみたいです.

  これを手動でする方法として,

- Firefox ブックマークに動く Favicon を
  http://www.kuribo.info/2006/02/firefox-favicon.html

  という記事も教えてもらいました.

  とにかく,[2006-03-14-1] の記事のように面倒な手順が要りません!


- 追記
  Firefox 2.0 に対応したバージョン
  https://addons.mozilla.org/firefox/3176