Exemplo n.º 1
0
 /**
  * Test commit.
  *
  * @param Connection $connection
  *   The connection to perform tests on.
  *
  * @dataProvider connectionDataProvider
  */
 public function testOnCommit(Connection $connection)
 {
     $callback = function () {
         return 'testresult';
     };
     $operation = $connection->onCommit($callback);
     $this->assertFalse($connection->hasOperation($operation), 'Operation was not properly added.');
     $connection->startTransaction();
     $operation = $connection->onCommit($callback);
     $this->assertTrue($connection->hasOperation($operation), 'Operation was not properly added.');
     $connection->commitTransaction();
     $check = $operation->getResult();
     $this->assertSame('testresult', $check, 'Operation was not properly added.');
 }
Exemplo n.º 2
0
<?php

namespace Gielfeldt\TransactionalPHP\Example;

require 'vendor/autoload.php';
use Gielfeldt\TransactionalPHP\Connection;
$connection = new Connection();
// Start outer transaction.
$connection->startTransaction();
$connection->onCommit(function () {
    print "THIS WILL BE PRINTED, BECAUSE THIS WILL BE COMMITTED\n";
});
// Start inner transaction.
$connection->startTransaction();
$connection->onCommit(function () {
    print "THIS WILL NOT BE PRINTED, BECAUSE THIS WILL BE ROLLED BACK\n";
});
// Rollback inner transaction.
$connection->rollbackTransaction();
// Commit inner transaction.
$connection->commitTransaction();