Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
| Total | |
0.00% |
0 / 1 |
|
0.00% |
0 / 18 |
CRAP | |
0.00% |
0 / 112 |
| sgbd_mongodb | |
0.00% |
0 / 1 |
|
0.00% |
0 / 18 |
1640 | |
0.00% |
0 / 112 |
| getInstance | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
|||
| getDb | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 3 |
|||
| findMany | |
0.00% |
0 / 1 |
12 | |
0.00% |
0 / 11 |
|||
| findManySimple | |
0.00% |
0 / 1 |
6 | |
0.00% |
0 / 6 |
|||
| findOne | |
0.00% |
0 / 1 |
6 | |
0.00% |
0 / 7 |
|||
| findOneSimple | |
0.00% |
0 / 1 |
6 | |
0.00% |
0 / 6 |
|||
| execute | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 3 |
|||
| update | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 4 |
|||
| insert | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 4 |
|||
| delete | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 4 |
|||
| getListColumn | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
|||
| getListTable | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 4 |
|||
| connect | |
0.00% |
0 / 1 |
110 | |
0.00% |
0 / 18 |
|||
| getLastInsertId | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
|||
| query | |
0.00% |
0 / 1 |
30 | |
0.00% |
0 / 16 |
|||
| queryOne | |
0.00% |
0 / 1 |
30 | |
0.00% |
0 / 16 |
|||
| quote | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
|||
| getWhereAll | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
|||
| <?php | |
| /* | |
| This file is part of Mkframework. | |
| Mkframework is free software: you can redistribute it and/or modify | |
| it under the terms of the GNU Lesser General Public License as published by | |
| the Free Software Foundation, either version 3 of the License. | |
| Mkframework is distributed in the hope that it will be useful, | |
| but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| GNU Lesser General Public License for more details. | |
| You should have received a copy of the GNU Lesser General Public License | |
| along with Mkframework. If not, see <http://www.gnu.org/licenses/>. | |
| */ | |
| class sgbd_mongodb extends abstract_sgbd{ | |
| public static function getInstance($sConfig){ | |
| return self::_getInstance(__CLASS__,$sConfig); | |
| } | |
| public function getDb(){ | |
| $this->connect(); | |
| return $this->_pDb; | |
| } | |
| public function findMany($tSql,$sClassRow){ | |
| $oCursor=$this->query($tSql); | |
| if(empty($oCursor)){ | |
| return null; | |
| } | |
| $tObj=array(); | |
| foreach($oCursor as $oDoc){ | |
| $oRow=new $sClassRow($oDoc); | |
| $tObj[]=$oRow; | |
| } | |
| return $tObj; | |
| } | |
| public function findManySimple($tSql,$sClassRow){ | |
| $oCursor=$this->query($tSql); | |
| if(empty($oCursor)){ | |
| return null; | |
| } | |
| return $oCursor; | |
| } | |
| public function findOne($tSql,$sClassRow){ | |
| $oDoc=$this->queryOne($tSql); | |
| if(empty($oDoc)){ | |
| return null; | |
| } | |
| $oRow=new $sClassRow($oDoc); | |
| return $oRow; | |
| } | |
| public function findOneSimple($tSql,$sClassRow){ | |
| $oDoc=$this->queryOne($tSql); | |
| if(empty($oDoc)){ | |
| return null; | |
| } | |
| return $oDoc; | |
| } | |
| public function execute($tSql){ | |
| $this->connect(); | |
| $this->_pDb->execute($tSql); | |
| } | |
| public function update($sCollection,$tProperty,$twhere){ | |
| $this->connect(); | |
| $oCollection = new MongoCollection($this->_pDb, $sCollection); | |
| $oCollection->save(array_merge($tProperty,$twhere)); | |
| } | |
| public function insert($sCollection,$tProperty){ | |
| $this->connect(); | |
| $oCollection = new MongoCollection($this->_pDb, $sCollection); | |
| $oCollection->insert($tProperty); | |
| } | |
| public function delete($sCollection,$twhere){ | |
| $this->connect(); | |
| $oCollection = new MongoCollection($this->_pDb, $sCollection); | |
| $oCollection->remove($twhere); | |
| } | |
| public function getListColumn($sTable){ | |
| return array('_id'); | |
| } | |
| public function getListTable(){ | |
| $this->connect(); | |
| $tTable= $this->_pDb->getCollectionNames(); | |
| return $tTable; | |
| } | |
| private function connect(){ | |
| if(empty($this->_pDb)){ | |
| try{ | |
| if(isset($this->_tConfig[$this->_sConfig.'.dsn']) and isset($this->_tConfig[$this->_sConfig.'.options']) and isset($this->_tConfig[$this->_sConfig.'.driverOptions']) ){ | |
| $oMongoDb = new MongoClient($this->_tConfig[$this->_sConfig.'.dsn'],$this->_tConfig[$this->_sConfig.'.options'],$this->_tConfig[$this->_sConfig.'.driverOptions']); | |
| }else if(isset($this->_tConfig[$this->_sConfig.'.dsn']) and isset($this->_tConfig[$this->_sConfig.'.options']) ){ | |
| $oMongoDb = new MongoClient($this->_tConfig[$this->_sConfig.'.dsn'],$this->_tConfig[$this->_sConfig.'.options']); | |
| }else if(isset($this->_tConfig[$this->_sConfig.'.dsn']) ){ | |
| $oMongoDb = new MongoClient($this->_tConfig[$this->_sConfig.'.dsn']); | |
| } | |
| $this->_pDb= $oMongoDb->selectDB($this->_tConfig[$this->_sConfig.'.database']); | |
| if($this->_pDb==null){ | |
| throw new Exception($oMongoDb->lastError()); | |
| } | |
| }catch(Exception $e ) { | |
| throw new Exception('Probleme de connexion mongoDb , message '.$e->getMessage()); | |
| } | |
| } | |
| } | |
| public function getLastInsertId(){ | |
| return null; | |
| } | |
| private function query($tReq){ | |
| $this->connect(); | |
| $this->sReq='mongoDb:'.print_r($tReq,1); | |
| $sCollection=$tReq[0]; | |
| $oCollection = new MongoCollection($this->_pDb, $sCollection); | |
| $nb=count($tReq); | |
| if($nb==4){ | |
| return $oCollection->find($tReq[1],$tReq[2],$tReq[3]); | |
| }else if($nb==3){ | |
| return $oCollection->find($tReq[1],$tReq[2]); | |
| }else if($nb==2){ | |
| return $oCollection->find($tReq[1]); | |
| }else if($nb==1){ | |
| return $oCollection->find(); | |
| } | |
| throw new Exception('Vous devez fournir au moins la collection en parametre'); | |
| } | |
| private function queryOne($tReq){ | |
| $this->connect(); | |
| $this->sReq='mongoDb:'.print_r($tReq,1); | |
| $sCollection=$tReq[0]; | |
| $oCollection = new MongoCollection($this->_pDb, $sCollection); | |
| $nb=count($tReq); | |
| if($nb==4){ | |
| return $oCollection->findOne($tReq[1],$tReq[2],$tReq[3]); | |
| }else if($nb==3){ | |
| return $oCollection->findOne($tReq[1],$tReq[2]); | |
| }else if($nb==2){ | |
| return $oCollection->findOne($tReq[1]); | |
| }else if($nb==1){ | |
| return $oCollection->findOne(); | |
| } | |
| throw new Exception('Vous devez fournir au moins la collection en parametre'); | |
| } | |
| public function quote($sVal){ | |
| return $sVal; | |
| } | |
| public function getWhereAll(){ | |
| return '1=1'; | |
| } | |
| } |