キャッシュかも
ブラウザのキャッシュを疑うことにはだいぶなれたのですが、
今週はこんなキャッシュに気づかずにしばらく悩みました。
次はすぐ気づけるように覚書です。
cakePHPのキャッシュ
DBのとあるテーブルに新たなカラムを追加。
cake側でその項目を使った処理を追加しようとしたところ思ったように動きません。
もともとcakeのモデルのfind関数でそのテーブルの1行分の全項目(フィールド指定なし)を取得していた部分で、あらたにDBに追加した項目が取得できません。
コードを読み違えていてどこかで取得項目の指定をしていたりするのかな?と思って悩んだ末に先輩に相談すると、「キャッシュ残ってるんちゃう?」とのこと。
cakeが、モデルの取得項目等もキャッシュしているそうです。
app/tmp/cache 配下のキャッシュファイルを削除して無事解決!
smartyのキャッシュ
修正する箇所が紛らわしかったので、間違ってるのかな?といろいろ悩んだすえ、
前述の「キャッシュ残ってるんちゃう?」を思い出し調べてみるとsmartyにもキャッシュのようなものが。
smartyはテンプレートをコンパイルしたphpファイルを生成、templates_c格納しているようです。
tplが更新されたときにはコンパイルをし直してそのPHPが上書きされます。
なんらかの理由でこのコンパイル済みデータよりも修正したtplの更新日付が古くなるとこの更新が行われずにいつまでも修正したtplがコンパイルしてもらえないようです。
こちらもキャッシュファイル(古いコンパイルファイル)を削除して無事解決。
こんな感じ
http://qiita.com/glaytomohiko/items/5529b01ccf7bee1f1af6
(私はこれもキャッシュかなと思うのですが、正確にはsmartyでキャッシュと呼ばれている機能が別であるようです)
今日は摩耶山に登りました。いい眺めー!