Bin will be removed on June 1, 2014 in favor of http://gist.github.com. Please save all your pastes before then. So long, and thanks for all the fish!×
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php
class HitBehavior extends ModelBehavior {
    public function increment(&$model, $field, $id = null) {
        $this->__update('+', $model, $field, $id);
    }
   
    public function decrement(&$model, $field, $id = null) {
        $this->__update('-', $model, $field, $id);
    }
   
    private function __id(&$model, $id) {
        if ($id) {
            return $id;
        } elseif ($model->id) {
            return $model->id;
        } else {
            trigger_error('You are a failure in your field. You should find yourself another profession.', E_USER_ERROR);
        }
    }
   
    private function __update($operator, &$model, $field, $id) {
        $model->updateAll(
            array(
                $model->alias . '.' . $field => "{$model->alias}.{$field} {$operator} 1"
            ),
            array(
                $model->primaryKey => $this->__id($model, $id)
            )
        );
    }
}
?>