Files
fdn2/private/lib/dao/GenericDao.php
T
Riccardo Di Dato 34ba89d6dc Qualche modifica al dao/model
Qualche modifica ai lib.inclusions
2015-12-23 14:45:45 +01:00

70 lines
1.9 KiB
PHP

<?php
/*
Author: Riccardo Di Dato
Creation Date: 22/dic/2015
*/
class GenericDao{
private $mongo;
private static $defaultReturnClass = "DaoSaveableDefaultImplementation";
public static function setDefaultReturnClass($retClass){
self::$defaultReturnClass = $retClass;
}
/**
* 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(), $retClass = null){
$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 self::$defaultReturnClass($ele);
}
return $ele;
}
public function save(DaoSaveable $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(DaoSaveable $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");
}
}
?>