setTransactionIsolation() public method

Sets the transaction isolation level.
public setTransactionIsolation ( integer $level ) : integer
$level integer The level to set.
return integer
Exemplo n.º 1
0
 /**
  * {@inheritdoc}
  */
 public function register(EventDispatcher $dispatcher)
 {
     $dispatcher->addListener(RouteMatchedEvent::class, function (RouteMatchedEvent $event) {
         $annotation = $this->getTransactionalAnnotation($event->getRouteMatch());
         if ($annotation) {
             $this->connection->setTransactionIsolation($annotation->getIsolationLevel());
             $this->connection->beginTransaction();
         }
     });
     $dispatcher->addListener(ControllerInvocatedEvent::class, function (ControllerInvocatedEvent $event) {
         $annotation = $this->getTransactionalAnnotation($event->getRouteMatch());
         if ($annotation) {
             if ($this->connection->isTransactionActive()) {
                 $this->connection->rollback();
             }
         }
     });
 }
Exemplo n.º 2
0
 /**
  * Initializes a new instance of the Connection class.
  *
  * @param array $params  The connection parameters.
  * @param \Doctrine\DBAL\Driver $driver
  * @param \Doctrine\DBAL\Configuration $config
  * @param \Doctrine\Common\EventManager $eventManager
  * @throws \Exception
  */
 public function __construct(array $params, Driver $driver, Configuration $config = null, EventManager $eventManager = null)
 {
     if (!isset($params['adapter'])) {
         throw new \Exception('adapter not set');
     }
     if (!isset($params['tablePrefix'])) {
         throw new \Exception('tablePrefix not set');
     }
     parent::__construct($params, $driver, $config, $eventManager);
     $this->adapter = new $params['adapter']($this);
     $this->tablePrefix = $params['tablePrefix'];
     parent::setTransactionIsolation(parent::TRANSACTION_READ_COMMITTED);
 }