function resolve($connection = null) { //TODO: CHECK IF PLATFORM SUPPORTS TRANSACTIONS, THROW EXCEPTION IF NOT if ($connection instanceof \DBAL\Database) { $this->setDatabase($connection); $connection = $connection->getConnection(); } elseif ($connection instanceof \DBAL\Connection) { $this->setDatabase($connection->getDatabase()); } if (is_null($connection)) { $connection = $this->getConnection(); } $resolved = parent::resolve($connection); if ($resolved) { $database = $this->getDatabase(); if (!$database->selected() && !$database->select()) { return false; } $this->setConnection($connection); return true; } return false; }