Gets support for native transactions

@return bool
765572
private function _pdoTransactionsSupported()
    {
        if (!is_null($this->_pdoTransactionsSupport)) {
            return $this->_pdoTransactionsSupport;
        }

        try {
            $supported = true;
            parent::beginTransaction();
        } catch (\PDOException $e) {
            $supported = false;
        }

        if ($supported) {
            parent::commit();
        }

        return $this->_pdoTransactionsSupport = $supported;
    }
1017213
public function getTransaction() {

		$transactionTable	= PaymentTables::getTableName( PaymentTables::TABLE_TRANSACTION );
		$transactionSuccess = Transaction::STATUS_SUCCESS;

		return $this->hasOne( Transaction::class, [ 'orderId' => 'id' ] )->where( "$transactionTable.status=$transactionSuccess" );
	}
839635
protected function transactionSucceed()
	{
		return $this->getTable()->whereId($this->transactionId)->update([
			'status' => Enum::TRANSACTION_SUCCEED,
			'tracking_code' => $this->trackingCode,
			'card_number' => $this->cardNumber,
			'payment_date' => Carbon::now(),
			'updated_at' => Carbon::now(),
		]);
	}
558740
public function actualizarObjetoLdap(){
        if ($this->existe) {
            $dn = $this->entrada['dn'];
            $cambios = array();
            foreach ($this->cambios as $atributos) {
                $cambios[$atributos] = $this->entrada[$atributos];
            }
            return $this->modificarEntradaLdap($dn, $cambios);
        }else{
            $this->configurarErrorLdap('Actualizacion', 'Esa entrada no existe');
            return false;
        }
    }
486055
public function commit_transaction()
	{
		// Fake call of the commit
		if ($this->_transaction_depth <= 0)
		{
			return false;
		}

		if ($this->_transaction_depth - 1)
		{
			$result = $this->release_savepoint($this->_transaction_depth - 1);
			// If savepoint is not supported it is not an error
			! isset($result) and $result = true;
		}
		else
		{
			$this->_in_transaction = false;
			$result = $this->driver_commit();
		}

		$result and $this->_transaction_depth --;

		return $result;
	}
264993
public function isDefaultPort(): bool
    {
        return $this->getPort() === null || (isset(self::$defaultPorts[$this->getScheme()]) && $this->getPort() === self::$defaultPorts[$this->getScheme()]);
    }
1337706
public function isPostgres()
    {
        static $r;
        if (is_null($r)) {
            $r = $this->driver->getPlatformName() == self::POSTGRESQL_PLATFORM;
        }
        return $r;
    }
864373
public function isSqlite()
    {
        static $r;
        if (is_null($r)) {
            $r = $this->driver->getPlatformName() == self::SQLITE_PLATFORM;
        }
        return $r;
    }
1215626
protected function getSafariVersionOnIos()
    {
        $aresult = explode('/', stristr($this->_agent, 'Version'));
        if (isset($aresult[1])) {
            $aversion = explode(' ', $aresult[1]);
            $this->setVersion($aversion[0]);
            return true;
        }
        return false;
    }
1291399
protected static function getSupported()
    {
        $folders = File::directories(root().'resources/translator');

        foreach ($folders as $folder) {
            $lang = explode(root().'resources/translator/', $folder);

            self::$supported[] = $lang[1];
        }
    }
610819
static public function supportedVariables()
    {
        $out = array(
            'execution_time' => 'float (seconds, rounded to 1msec)',
            'mem_usage' => 'int (bytes, rounded to 1000)',
            'output_size' => 'int (bytes)'
        );
        /// @todo fix to run from eZ5 context
        if ( eZPerfLoggerDebug::isDebugEnabled() )
        {
            $out['db_queries'] = 'int';
            $out['accumulators/*'] = 'float (seconds, rounded to 1msec)';
            $out['accumulators/*/count'] = 'int (number of times operation executed)';
        }
        if ( extension_loaded( 'xhprof' ) )
        {
            $out['xhkprof_runs'] = 'string (csv list of identifiers)';
        }
        if ( isset( $_SERVER['UNIQUE_ID'] ) )
        {
            $out['unique_id'] = 'string (unique per-request identifier)';
        }
        /// @todo also take into account CP version numbers
        if ( version_compare( '4.7.0', eZPublishSDK::version() ) >= 0 )
        {
            $out['content/nodeid'] = 'int';
        }
        $out['_server/*'] = 'string (depending on the specific variable)';
        return $out;
    }
695713
public function beginTransaction()
    {
        $this->connect();
        if ($this->_connection->inTransaction()) {
            return true;
        }

        return $this->_connection->beginTransaction();
    }
1099376
public function hasTransactions($sTransactionType = null)
    {
        $iNumberOfTransactions = 0;
        $sTransactionTypeRestriction = '';
        if (null !== $sTransactionType) {
            $oTransactionType = $this->getTransactionTypeObject($sTransactionType);
            $sTransactionId = MySqlLegacySupport::getInstance()->real_escape_string($oTransactionType->id);
            $sTransactionTypeRestriction = " AND `pkg_shop_payment_transaction`.`pkg_shop_payment_transaction_type_id` = '{$sTransactionId}'";
        }
        $query = "SELECT COUNT(*) AS transactions
                    FROM `pkg_shop_payment_transaction`
                   WHERE `pkg_shop_payment_transaction`.`shop_order_id` = '".MySqlLegacySupport::getInstance(
            )->real_escape_string(
                $this->order->id
            )."'
                    {$sTransactionTypeRestriction}
                 ";
        if ($aRow = MySqlLegacySupport::getInstance()->fetch_row(MySqlLegacySupport::getInstance()->query($query))) {
            $iNumberOfTransactions = intval($aRow[0]);
        }

        return 0 !== $iNumberOfTransactions;
    }
730829
protected function isInTransaction() {
    return isset(self::$inTransaction[$this->connId]) && self::$inTransaction[$this->connId] === true;
  }
963832
protected function store_supports_native_locking() {
        if ($this->nativelocking === null) {
            $this->nativelocking = ($this->store instanceof cache_is_lockable);
        }
        return $this->nativelocking;
    }
739058
public function getSupportedCollations()
    {
        if ($this->supportedCollations === null) {
            $supportedCollations = [];
            $rs = $this->executeQuery('SHOW COLLATION');
            while (($row = $rs->fetch(PDO::FETCH_ASSOC)) !== false) {
                if (!isset($row['Collation']) || !isset($row['Charset'])) {
                    throw new Exception(t('Unrecognized result of the "%s" database query.', 'SHOW COLLATION'));
                }
                $supportedCollations[strtolower($row['Collation'])] = strtolower($row['Charset']);
            }
            $this->supportedCollations = $supportedCollations;
        }

        return $this->supportedCollations;
    }
1076516
function supportedPlatform( $platform = NULL ) {
		return is_object( $this->parent ) ? $this->parent->supportedPlatform( $platform ) : TRUE;
	}