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;$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)
(подписаться на новые комментарии в этой ветке)
Нет обратных ссылок на эту запись.
Июнь 3rd, 2011 - 21:53
оригинально