仙台の山奥で自転車に乗ったり転んだり

愛車の GIOS でサイクリングしたりポタリングしたり、それをブログに記録してみたり。ロードバイクや自転車や坂のことを書いてみたり。ときたまプログラムのことを忘れないようにメモってみたり。

Modelでなるべくシンプルなインクリメントを実行したい

CakePHP(1.3系)でなるべくシンプルな実装でインクリメントのみの単純な機能を実装したい……、としたら↓みたいな実装はベター?

    public function incrementPv($id)
    {
        $table = $this->getDataSource()->fullTableName($this);
        $query = "UPDATE {$table} SET `pv` = `pv` + 1 WHERE `id` = :id";
        $this->query($query, array('id' => $id));  
    }

ベストではないけど、わりかしベターな気はする。数週間後に読み返したら、もっと適当な方法が思いつくかも。

DboSource::renderStatement()とかDboSource::buildStatement()を活用すると、もっと綺麗に実装できるのかもしれないけど、気持ちが悪いというか、なんだかブードゥーくさくて避けておきたい。