freedev.asia Свободное програмное обеспечение, для свободных людей!

30Май/111

Бехавер транзакций для CakePHP 1.3

Одно из отличиев версий 1.2 и 1.3 в том что в 1.3 из ядра был убран бехавер с транзакциями. Теперь необходимо для использования транзакций сначала получить из модели источник данных (DataSource), а затем через него открывать транзакцию. Поскольку при переносе одного из проектов на версию 1.3 мне необходимо было бы отыскивать во всему прикладу эти вызовы (а они использовались часто), то я решил реализовать этот бехавер для 1.3.

<?php

//app/models/behaviors/transaction.php

class TransactionBehavior extends ModelBehavior {
var $settings = array();
var $ds = null;
var $model = null;

function setup(&amp;amp;amp;amp;$model, $config = array()) {
$this->settings = $config;
if(!$this->ds) {
$this->ds = $model->getDataSource();
$this->model = $model;

}
}

function begin() {
return $this->ds->begin($this->model);
}

function commit() {
return $this->ds->commit($this->model);
}

function rollback() {
return $this->ds->rollback($this->model);
}
}
?>

После добавления этого бехавера, транзакции можно использовать так же как и в версии 1.2.

Комментарии (1) Пинги (0)
  1. оригинально :P


Leave a comment

Нет обратных ссылок на эту запись.