From 34ba89d6dc4e170e8b1680c0058928694fa60b01 Mon Sep 17 00:00:00 2001 From: Riccardo Di Dato Date: Wed, 23 Dec 2015 14:45:45 +0100 Subject: [PATCH] Qualche modifica al dao/model Qualche modifica ai lib.inclusions --- .../dao/DaoSaveableDefaultImplementation.php | 18 ++++++++++++++++++ private/lib/dao/DaoSaveableInterface.php | 13 +++++++++++++ private/lib/dao/GenericDao.php | 14 ++++++++++---- private/lib/dao/Model.php | 2 +- private/lib/lib.inclusions.php | 12 ++++++++---- 5 files changed, 50 insertions(+), 9 deletions(-) create mode 100644 private/lib/dao/DaoSaveableDefaultImplementation.php create mode 100644 private/lib/dao/DaoSaveableInterface.php diff --git a/private/lib/dao/DaoSaveableDefaultImplementation.php b/private/lib/dao/DaoSaveableDefaultImplementation.php new file mode 100644 index 0000000..51673e9 --- /dev/null +++ b/private/lib/dao/DaoSaveableDefaultImplementation.php @@ -0,0 +1,18 @@ + \ No newline at end of file diff --git a/private/lib/dao/DaoSaveableInterface.php b/private/lib/dao/DaoSaveableInterface.php new file mode 100644 index 0000000..4f7226d --- /dev/null +++ b/private/lib/dao/DaoSaveableInterface.php @@ -0,0 +1,13 @@ + \ No newline at end of file diff --git a/private/lib/dao/GenericDao.php b/private/lib/dao/GenericDao.php index 05c778c..832f230 100644 --- a/private/lib/dao/GenericDao.php +++ b/private/lib/dao/GenericDao.php @@ -7,6 +7,12 @@ 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] @@ -21,7 +27,7 @@ class GenericDao{ $mongo = self::generateMongoObject($connectionString); } - public function query($collectionName, array $filter = array(), array $options = array()){ + public function query($collectionName, array $filter = array(), array $options = array(), $retClass = null){ $rval = array(); $table = $this->getTable($name); @@ -29,12 +35,12 @@ class GenericDao{ $cursor = $this->mongo->executeQuery($collectionName,$query); foreach ($cursor as $ele){ - $rval[] = new Model($ele); + $rval[] = new self::$defaultReturnClass($ele); } return $ele; } - public function save(Model $model){ + public function save(DaoSaveable $model){ $bulk = new MongoDB\Driver\BulkWrite(['ordered' => false]); $writeConcern = new MongoDB\Driver\WriteConcern(MongoDB\Driver\WriteConcern::MAJORITY, 1000); @@ -45,7 +51,7 @@ class GenericDao{ } } - public function delete(Model $model){ + public function delete(DaoSaveable $model){ } diff --git a/private/lib/dao/Model.php b/private/lib/dao/Model.php index c590f44..b5d1d30 100644 --- a/private/lib/dao/Model.php +++ b/private/lib/dao/Model.php @@ -4,7 +4,7 @@ Author: Riccardo Di Dato Creation Date: 22/dic/2015 */ -class Model { +class Model extends DaoSaveableDefaultImplementation{ } diff --git a/private/lib/lib.inclusions.php b/private/lib/lib.inclusions.php index 76b58b2..66a3241 100644 --- a/private/lib/lib.inclusions.php +++ b/private/lib/lib.inclusions.php @@ -7,11 +7,15 @@ Creation Date: 14/nov/2013 require_once(dirname(__FILE__)."/CoreException.php"); +require_once(dirname(__FILE__)."/logger/lib.inclusion.php"); + require_once(dirname(__FILE__)."/system/lib.inclusion.php"); + + require_once(dirname(__FILE__)."/Status.php"); require_once(dirname(__FILE__)."/OperationStack.php"); require_once(dirname(__FILE__)."/OperationChain.php"); @@ -23,10 +27,10 @@ require_once(dirname(__FILE__)."/CoreException.php"); require_once(dirname(__FILE__)."/PostHandler.php"); // Include Loggers -require_once(dirname(__FILE__)."/logger/LoggingFacility.php"); -require_once(dirname(__FILE__)."/logger/LoggingFacilityManager.php"); -require_once(dirname(__FILE__)."/logger/SyslogLogger.php"); -require_once(dirname(__FILE__)."/logger/FileLogger.php"); +// require_once(dirname(__FILE__)."/logger/LoggingFacility.php"); +// require_once(dirname(__FILE__)."/logger/LoggingFacilityManager.php"); +// require_once(dirname(__FILE__)."/logger/SyslogLogger.php"); +// require_once(dirname(__FILE__)."/logger/FileLogger.php"); // Include base UIComponents require_once(dirname(__FILE__)."/gui/UIComponent.php");