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

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

//app/models/behaviors/transaction.php
class TransactionBehavior extends ModelBehavior {
var $settings = array();
var $ds = null;
var $model = null;
function setup(&$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.

Автор: Сергей Степанов

Поделиться @

Пока нет коментариев. Будьте первым!