private function getConnection($connectionString, $connectionType) { $connectionQuery = ''; if ($connectionString) { $connectionQuery .= 'connexion LIKE "' . $connectionString . '%"'; } else { $connectionQuery .= 'connexion IS NULL '; } $igoConnexionType = IgoConnexionType::findFirst("connexion_type = '{$connectionType}'"); if (!$igoConnexionType) { die("Type de connection inconnu: " . $connectionType); } $connexionTypeId = $igoConnexionType->id; $connexionTypeNom = $igoConnexionType->nom; if ($igoConnexionType) { $connectionQuery .= ' AND connexion_type_id=' . $connexionTypeId; } //If connection doesn't exist, create it $igoConnection = IgoConnexion::findFirst($connectionQuery); if (!$igoConnection) { $igoConnection = new IgoConnexion(); // $igoConnection->setTransaction($transaction); $igoConnection->connexion = $connectionString; $igoConnection->connexion_type_id = $connexionTypeId; if ($igoConnection->save(false) == false) { foreach ($igoConnection->getMessages() as $message) { throw new Exception($message); } //$transaction->rollback(); $this->db->rollback(); } else { $igoConnection->nom = $connexionTypeNom . ' ' . $igoConnection->id; $igoConnection->save(false); } } else { if ($igoConnection->nom == "" || $igoConnection->nom == null) { // $igoConnection->setTransaction($transaction); $igoConnection->nom = $connexionTypeNom . ' ' . $igoConnection->id; $igoConnection->connexion_type_id = $connexionTypeId; $igoConnection->save(false); } } return $igoConnection; }