Class Phalcon\Mvc\Model\Transaction\Manager
implements Phalcon\Mvc\Model\Transaction\ManagerInterface, Phalcon\DI\InjectionAwareInterface
A transaction acts on a single database connection. If you have multiple class-specific databases, the transaction will not protect interaction among them. This class manages the objects that compose a transaction. A trasaction produces a unique connection that is passed to every object part of the transaction.
try { use Phalcon\Mvc\Model\Transaction\Manager as TransactionManager; $transactionManager = new TransactionManager(); $transaction = $transactionManager->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(); }
Methods
public __construct ([Phalcon\DiInterface $dependencyInjector])
Phalcon\Mvc\Model\Transaction\Manager constructor
public setDI (Phalcon\DiInterface $dependencyInjector)
Sets the dependency injection container
public Phalcon\DiInterface getDI ()
Returns the dependency injection container
public Phalcon\Mvc\Model\Transaction\Manager setDbService (string $service)
Sets the database service used to run the isolated transactions
public string getDbService ()
Returns the database service used to isolate the transaction
public Phalcon\Mvc\Model\Transaction\Manager setRollbackPendent (boolean $rollbackPendent)
Set if the transaction manager must register a shutdown function to clean up pendent transactions
public boolean getRollbackPendent ()
Check if the transaction manager is registering a shutdown function to clean up pendent transactions
public boolean has ()
Checks whether the manager has an active transaction
public Phalcon\Mvc\Model\TransactionInterface get ([boolean $autoBegin])
Returns a new Phalcon\Mvc\Model\Transaction or an already created once This method registers a shutdown function to rollback active connections
public Phalcon\Mvc\Model\TransactionInterface getOrCreateTransaction ([boolean $autoBegin])
Create/Returns a new transaction or an existing one
public rollbackPendent ()
Rollbacks active transactions within the manager
public commit ()
Commmits active transactions within the manager
public rollback ([boolean $collect])
Rollbacks active transactions within the manager Collect will remove transaction from the manager
public notifyRollback (Phalcon\Mvc\Model\TransactionInterface $transaction)
Notifies the manager about a rollbacked transaction
public notifyCommit (Phalcon\Mvc\Model\TransactionInterface $transaction)
Notifies the manager about a commited transaction
protected _collectTransaction ()
Removes transactions from the TransactionManager
public collectTransactions ()
Remove all the transactions from the manager
© 2011–2016 Phalcon Framework Team
Licensed under the Creative Commons Attribution License 3.0.
https://docs.phalconphp.com/en/2.0.0/api/Phalcon_Mvc_Model_Transaction_Manager.html