Класс Phalcon\Mvc\Model\Transaction

Реализует Phalcon\Mvc\Model\TransactionInterface

Source on GitHub

Транзакции являются защитными блоками, в которых операторы SQL только постоянные, если все они могут быть успешными как одно атомарное действие. Phalcon\Transaction предназначен для использования с Phalcon_Model_Base. Phalcon транзакции должны быть созданы с помощью Phalcon\Transaction\Manager.

<?php

try {
    $manager = new \Phalcon\Mvc\Model\Transaction\Manager();

    $transaction = $manager->get();

    $robot = new Robots();

    $robot->setTransaction($transaction);

    $robot->name       = "WALL·E";
    $robot->created_at = date("Y-m-d");

    if ($robot->save() === false) {
        $transaction->rollback("Can't save robot");
    }

    $robotPart = new RobotParts();

    $robotPart->setTransaction($transaction);

    $robotPart->type = "head";

    if ($robotPart->save() === false) {
        $transaction->rollback("Can't save robot part");
    }

    $transaction->commit();
} catch(Phalcon\Mvc\Model\Transaction\Failed $e) {
    echo "Failed, reason: ", $e->getMessage();
}

Методы

public __construct (Phalcon\DiInterface $dependencyInjector, [boolean $autoBegin], [string $service])

Phalcon\Mvc\Model\Transaction конструктор

public setTransactionManager (Phalcon\Mvc\Model\Transaction\ManagerInterface $manager)

Задает диспетчер транзакций, связанный с транзакцией

public begin ()

Запускает транзакцию

public commit ()

Фиксирует транзакцию

public boolean rollback ([string $rollbackMessage], [Phalcon\Mvc\ModelInterface $rollbackRecord])

Откат транзакции

public getConnection ()

Возвращает подключение, связанное с транзакцией

public setIsNewTransaction (mixed $isNew)

Устанавливает, является ли транзакция повторно используемой или новой

public setRollbackOnAbort (mixed $rollbackOnAbort)

Устанавливает флаг для отката при отмене HTTP-соединения

public isManaged ()

Проверяет, управляется ли транзакция менеджером транзакций

public getMessages ()

Возвращает сообщения о проверке с последнего сохранения.

public isValid ()

Проверяет, находится ли внутреннее соединение под активной транзакцией

public setRollbackedRecord (Phalcon\Mvc\ModelInterface $record)

Устанавливает объект, который генерирует откат