/** * @param Sabel_Db_Driver $driver * * @throws Sabel_Db_Exception_Transaction * @return void */ public static function begin(Sabel_Db_Driver $driver) { switch (self::$isolationLevel) { case self::READ_UNCOMMITTED: $iLevel = Sabel_Db_Driver::TRANS_READ_UNCOMMITTED; break; case self::READ_COMMITTED: $iLevel = Sabel_Db_Driver::TRANS_READ_COMMITTED; break; case self::REPEATABLE_READ: $iLevel = Sabel_Db_Driver::TRANS_REPEATABLE_READ; break; case self::SERIALIZABLE: $iLevel = Sabel_Db_Driver::TRANS_SERIALIZABLE; break; default: $iLevel = null; } $connectionName = $driver->getConnectionName(); try { self::$transactions[$connectionName]["conn"] = $driver->begin($iLevel); self::$transactions[$connectionName]["driver"] = $driver; self::$active = true; } catch (Exception $e) { throw new Sabel_Db_Exception_Transaction($e->getMessage()); } }