Windows用のmemcachedもバイナリパッケージで入手できるもんですね。手元の開発環境でどうしようかと思ったら、なんでもあるもんだ。
memcached-win32 Windows用のmemcached。サービス版とコマンド版両用 バイナリ版をzipで展開して適当な場所に置く
peclのWindows用バイナリ配布pecl4win からmemecahed拡張をダウンロード。5.2.5用はないので5.2.1用を。php-5.2.5/extとかに置く。
php.iniを編集して、extention=php_memcache.dll を追加。(Apache再起動)(このバイナリのdllにはmemcacheで”d”はついてないので注意)
sfMemcachePluginを、自分のsymfonyで作ったプロジェクトに入れる。
> symfony plugin-install http://plugins.symfony-project.com/sfMemcachePlugin
関数キャッシュのmemcached化の使用レポートin日本語を参考に、設定を行なう。
config_handlers.ymlとmemcache.ymlを、(アプリ名)/config/ にコピー。memcache.ymlの中のポート番号などは自分が動かしているmemcachedの設定に合わせて変更する。
conf/factories.ymlで、ViewをキャッシュするクラスをsfMemcacheCacheに置換する。
view_cache: class: sfMemcacheCache
もちろん、自分のsymfony appはテンプレートキャッシュを使う設定になってないといけない。開発環境でもcacheをオンにする設定は、たとえば、(apps)/settings.ymlにて
all: .settings: cache: on
(apps)/cache.ymlにて
all: enabled: on with_layout: false lifetime: 86400
など。(実際にはこんな乱暴に全actionにキャッシュをかけちゃだめ)
あとは、設定を反映させるために、symfonyキャッシュをクリア
> symfony cc
で、実行する。devモードの場合、一回目表示される水色の「キャッシュがなかったので作ったよ」マークが二回目の表示で黄色になればOK。
実行した結果、memcachedが本当に使われているかどうかを確認するには、memcachedの内容を確認するにはにあるようなスクリプトでmemcachedの状態を表示します。
[追記] クライアント側のライブラリだからdがついてない、とelfさんに指摘いただきました。考えてみればそうですね。