Files
fdn2/private/lib/dao/GenericDao.php
T
Riccardo Di Dato 4ddbe4ffc2 Creato sistema di deploy (INPROGRESS)
Importate librerie fondamentali:
Logger (UNTESTED)
System (UNTESTED)
Dao (INCOMPLETE)
2015-12-22 22:08:30 +01:00

64 lines
1.7 KiB
PHP

<?php
/*
Author: Riccardo Di Dato
Creation Date: 22/dic/2015
*/
class GenericDao{
private $mongo;
/**
* La connection string è nel seguente formato.
* [username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database]
* host1 e database sono obbligatori
*
* @param string $connectionString
*/
public function __construct($name, $connectionString){
if (!preg_match("~^\w+/\w+$~",$connectionString)){
throw new CoreException("'GenericDao' constructed with invalid connection string '$connectionString': ");
}
$mongo = self::generateMongoObject($connectionString);
}
public function query($collectionName, array $filter = array(), array $options = array()){
$rval = array();
$table = $this->getTable($name);
$query = new MongoDB\Driver\Query($filter, $options);
$cursor = $this->mongo->executeQuery($collectionName,$query);
foreach ($cursor as $ele){
$rval[] = new Model($ele);
}
return $ele;
}
public function save(Model $model){
$bulk = new MongoDB\Driver\BulkWrite(['ordered' => false]);
$writeConcern = new MongoDB\Driver\WriteConcern(MongoDB\Driver\WriteConcern::MAJORITY, 1000);
try {
$result = $manager->executeBulkWrite('db.collection', $bulk, $writeConcern);
} catch (MongoDB\Driver\Exception\BulkWriteException $e) {
}
}
public function delete(Model $model){
}
/**
* Costruisce un oggetto mongo da passare al costruttore.
*
* @param string $connectionString
* @return \MongoDB\Driver\Manager
*/
private static function generateMongoObject($connectionString){
return new MongoClient("mongodb://$connectionString");
// return new MongoDB\Driver\Manager("mongodb://$connectionString");
}
}
?>