コード例 #1
0
ファイル: MapfileController.php プロジェクト: nbtetreault/igo
 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;
 }