]> git.mxchange.org Git - core.git/blobdiff - framework/main/middleware/database/class_DatabaseConnection.php
Continued:
[core.git] / framework / main / middleware / database / class_DatabaseConnection.php
index 7e01bc05c79f6b165d822c7008860e27038ce999..5563b87729cf161ab5b0ea644ab7e368250cd5d2 100644 (file)
@@ -11,6 +11,9 @@ use Org\Mxchange\CoreFramework\Registry\Registerable;
 use Org\Mxchange\CoreFramework\Middleware\BaseMiddleware;
 use Org\Mxchange\CoreFramework\Middleware\Debug\DebugMiddleware;
 
+// Import SPL stuff
+use \InvalidArgumentException;
+
 /**
  * Database selector class
  *
@@ -47,7 +50,7 @@ class DatabaseConnection extends BaseMiddleware implements DatabaseConnector, Re
        /**
         * The real database layer
         */
-       private $dbLayer = NULL;
+       private $backendInstance = NULL;
 
        /**
         * An instance of this class
@@ -65,16 +68,16 @@ class DatabaseConnection extends BaseMiddleware implements DatabaseConnector, Re
        /**
         * Creates a new database connection layer
         *
-        * @param       $debugInstance  An instance of a DebugMiddleware class
-        * @param       $dbLayer                An instance of a DatabaseBackend class
+        * @param       $debugInstance          An instance of a DebugMiddleware class
+        * @param       $backendInstance        An instance of a DatabaseBackend class
         * @todo        $debugInstance is currently not used
         */
-       public static final function createDatabaseConnection (DebugMiddleware $debugInstance, DatabaseBackend $dbLayer) {
+       public static final function createDatabaseConnection (DebugMiddleware $debugInstance, DatabaseBackend $backendInstance) {
                // Get instance
                $databaseInstance = new DatabaseConnection();
 
                // Set database layer
-               $databaseInstance->setDatabaseLayer($dbLayer);
+               $databaseInstance->setDatabaseLayer($backendInstance);
 
                // Set db instance
                self::$selfInstance = $databaseInstance;
@@ -121,11 +124,11 @@ class DatabaseConnection extends BaseMiddleware implements DatabaseConnector, Re
 
        /**
         * Setter for the real database layer
-        * @param       $dbLayer        An instance of the real database layer
+        * @param       $backendInstance        An instance of a DatabaseBackend class
         * @return      void
         */
-       public final function setDatabaseLayer (DatabaseBackend $dbLayer) {
-               $this->dbLayer = $dbLayer;
+       public final function setDatabaseLayer (DatabaseBackend $backendInstance) {
+               $this->backendInstance = $backendInstance;
        }
 
        /**
@@ -134,7 +137,7 @@ class DatabaseConnection extends BaseMiddleware implements DatabaseConnector, Re
         * @return      $indexKey       Index key
         */
        public final function getIndexKey () {
-               return $this->dbLayer->getIndexKey();
+               return $this->backendInstance->getIndexKey();
        }
 
        /**
@@ -144,13 +147,20 @@ class DatabaseConnection extends BaseMiddleware implements DatabaseConnector, Re
         * @param       $tableName                      Name of the 'table' we shall query
         * @param       $criteriaInstance       An instance of a Criteria class
         * @return      $result                         The result as an array
+        * @throws      InvalidArgumentException        If a parameter is empty
         */
        public function doSelectByTableCriteria (string $tableName, Criteria $criteriaInstance) {
+               // Validate parameter
+               if (empty($tableName)) {
+                       // Throw IAE
+                       throw new InvalidArgumentException('Parameter "tableName" is empty');
+               }
+
                // Connect to the database
-               $this->dbLayer->connectToDatabase();
+               $this->backendInstance->connectToDatabase();
 
                // Get result from query
-               $result = $this->dbLayer->querySelect($tableName, $criteriaInstance);
+               $result = $this->backendInstance->querySelect($tableName, $criteriaInstance);
 
                // Return the result
                return $result;
@@ -162,7 +172,7 @@ class DatabaseConnection extends BaseMiddleware implements DatabaseConnector, Re
         * @return      $exceptionInstance      Last thrown exception
         */
        public final function getLastException () {
-               $exceptionInstance = $this->dbLayer->getLastException();
+               $exceptionInstance = $this->backendInstance->getLastException();
                return $exceptionInstance;
        }
 
@@ -174,10 +184,10 @@ class DatabaseConnection extends BaseMiddleware implements DatabaseConnector, Re
         */
        public function queryInsertDataSet (StoreableCriteria $dataSetInstance) {
                // Connect to the database
-               $this->dbLayer->connectToDatabase();
+               $this->backendInstance->connectToDatabase();
 
                // Ask the database layer
-               $this->dbLayer->queryInsertDataSet($dataSetInstance);
+               $this->backendInstance->queryInsertDataSet($dataSetInstance);
        }
 
        /**
@@ -188,10 +198,10 @@ class DatabaseConnection extends BaseMiddleware implements DatabaseConnector, Re
         */
        public function queryUpdateDataSet (StoreableCriteria $dataSetInstance) {
                // Connect to the database
-               $this->dbLayer->connectToDatabase();
+               $this->backendInstance->connectToDatabase();
 
                // Ask the database layer
-               $this->dbLayer->queryUpdateDataSet($dataSetInstance);
+               $this->backendInstance->queryUpdateDataSet($dataSetInstance);
        }
 
        /**
@@ -199,13 +209,20 @@ class DatabaseConnection extends BaseMiddleware implements DatabaseConnector, Re
         *
         * @param       $tableName              Name of table we need the primary key column from
         * @return      $primaryKey             Primary key column of requested table
+        * @throws      InvalidArgumentException        If a parameter is empty
         */
        public function getPrimaryKeyOfTable (string $tableName) {
+               // Validate parameter
+               if (empty($tableName)) {
+                       // Throw IAE
+                       throw new InvalidArgumentException('Parameter "tableName" is empty');
+               }
+
                // Connect to the database
-               $this->dbLayer->connectToDatabase();
+               $this->backendInstance->connectToDatabase();
 
                // Ask the database layer
-               $primaryKey = $this->dbLayer->getPrimaryKeyOfTable($tableName);
+               $primaryKey = $this->backendInstance->getPrimaryKeyOfTable($tableName);
 
                // Return the value
                return $primaryKey;
@@ -219,11 +236,11 @@ class DatabaseConnection extends BaseMiddleware implements DatabaseConnector, Re
         */
        public function removeNonPublicDataFromArray (array $data) {
                // Connect to the database
-               $this->dbLayer->connectToDatabase();
+               $this->backendInstance->connectToDatabase();
 
                // Call database backend
-               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('DB-CONNECTION[' . $this->__toString() . ']: Calling this->dbLayer->removeNonPublicDataFromArray(data) ...');
-               $data = $this->dbLayer->removeNonPublicDataFromArray($data);
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('DB-CONNECTION[' . $this->__toString() . ']: Calling this->backendInstance->removeNonPublicDataFromArray(data) ...');
+               $data = $this->backendInstance->removeNonPublicDataFromArray($data);
 
                //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('DB-CONNECTION[' . $this->__toString() . ']: data[]=' . gettype($data));
                return $data;
@@ -234,13 +251,20 @@ class DatabaseConnection extends BaseMiddleware implements DatabaseConnector, Re
         *
         * @param       $tableName      Table name
         * @return      $count          Total row count
+        * @throws      InvalidArgumentException        If a parameter is empty
         */
        public function countTotalRows (string $tableName) {
+               // Validate parameter
+               if (empty($tableName)) {
+                       // Throw IAE
+                       throw new InvalidArgumentException('Parameter "tableName" is empty');
+               }
+
                // Connect to the database
-               $this->dbLayer->connectToDatabase();
+               $this->backendInstance->connectToDatabase();
 
                // Ask the database layer
-               $count = $this->dbLayer->countTotalRows($tableName);
+               $count = $this->backendInstance->countTotalRows($tableName);
 
                // Return the value
                return $count;