]> git.mxchange.org Git - core.git/blobdiff - inc/classes/main/database/databases/class_LocalFileDatabase.php
Some 'static' array elements rewritten to constant, other cleanups
[core.git] / inc / classes / main / database / databases / class_LocalFileDatabase.php
index 854a8888e73dd5a2068abed98668e67d20c75fb1..37dca8fcc4f2c3fa83c6e0a199b69db411a02477 100644 (file)
@@ -32,11 +32,6 @@ class LocalFileDatabase extends BaseDatabaseFrontend implements DatabaseFrontend
        // Status results
        const RESULT_OKAY = 'ok';
 
-       /**
-        * Save path for "file database"
-        */
-       private $savePath = '';
-
        /**
         * The file's extension
         */
@@ -65,7 +60,7 @@ class LocalFileDatabase extends BaseDatabaseFrontend implements DatabaseFrontend
        /**
         * Last exception
         */
-       private $lastException = null;
+       private $lastException = NULL;
 
        /**
         * Table information array
@@ -89,24 +84,20 @@ class LocalFileDatabase extends BaseDatabaseFrontend implements DatabaseFrontend
        }
 
        /**
-        * Create an object of LocalFileDatabase and set the save path for local files.
-        * This method also validates the given file path.
+        * Create an object of LocalFileDatabase and set the save path from
+        * configuration for local files.
         *
-        * @param       $savePath               The local file path string
-        * @return      $dbInstance             An instance of LocalFileDatabase
+        * @return      $databaseInstance       An instance of LocalFileDatabase
         */
-       public static final function createLocalFileDatabase ($savePath) {
+       public static final function createLocalFileDatabase () {
                // Get an instance
                $databaseInstance = new LocalFileDatabase();
 
-               // Set save path and IO instance
-               $databaseInstance->setSavePath($savePath);
+               // Get a new compressor channel instance
+               $compressorInstance = ObjectFactory::createObjectByConfiguredName('compressor_channel_class');
 
                // Set the compressor channel
-               $databaseInstance->setCompressorChannel(CompressorChannel::createCompressorChannel(
-                       $databaseInstance->getConfigInstance()->getConfigEntry('base_path').
-                       $databaseInstance->getConfigInstance()->getConfigEntry('compressor_base_path')
-               ));
+               $databaseInstance->setCompressorChannel($compressorInstance);
 
                // "Connect" to the database
                $databaseInstance->connectToDatabase();
@@ -115,26 +106,6 @@ class LocalFileDatabase extends BaseDatabaseFrontend implements DatabaseFrontend
                return $databaseInstance;
        }
 
-       /**
-        * Setter for save path
-        *
-        * @param               $savePath               The local save path where we shall put our serialized classes
-        * @return      void
-        */
-       public final function setSavePath ($savePath) {
-               // Set save path
-               $this->savePath = (string) $savePath;
-       }
-
-       /**
-        * Getter for save path
-        *
-        * @return      $savePath               The local save path where we shall put our serialized classes
-        */
-       public final function getSavePath () {
-               return $this->savePath;
-       }
-
        /**
         * Getter for last error message
         *
@@ -172,7 +143,7 @@ class LocalFileDatabase extends BaseDatabaseFrontend implements DatabaseFrontend
         */
        private final function resetLastError () {
                $this->lastError = '';
-               $this->lastException = null;
+               $this->lastException = NULL;
        }
 
        /**
@@ -303,7 +274,7 @@ class LocalFileDatabase extends BaseDatabaseFrontend implements DatabaseFrontend
         */
        private function generateFqfnFromDataSet (Criteria $dataSetInstance, $rowName) {
                // This is the FQFN
-               $fqfn = $this->getSavePath() . $dataSetInstance->getTableName() . '/' . $rowName . '.' . $this->getFileExtension();
+               $fqfn = $this->getConfigInstance()->getConfigEntry('local_db_path') . $dataSetInstance->getTableName() . '/' . $rowName . '.' . $this->getFileExtension();
 
                // Return it
                return $fqfn;
@@ -375,10 +346,10 @@ class LocalFileDatabase extends BaseDatabaseFrontend implements DatabaseFrontend
         */
        public function querySelect ($resultType, $tableName, LocalSearchCriteria $criteriaInstance) {
                // The result is null by any errors
-               $resultData = null;
+               $resultData = NULL;
 
                // Create full path name
-               $pathName = $this->getSavePath() . $tableName . '/';
+               $pathName = $this->getConfigInstance()->getConfigEntry('local_db_path') . $tableName . '/';
 
                // A 'select' query is not that easy on local files, so first try to
                // find the 'table' which is in fact a directory on the server
@@ -388,8 +359,8 @@ class LocalFileDatabase extends BaseDatabaseFrontend implements DatabaseFrontend
 
                        // Initialize the result data, this need to be rewritten e.g. if a local file cannot be read
                        $resultData = array(
-                               'status'        => LocalfileDatabase::RESULT_OKAY,
-                               'rows'          => array()
+                               BaseDatabaseFrontend::RESULT_INDEX_STATUS => LocalfileDatabase::RESULT_OKAY,
+                               BaseDatabaseFrontend::RESULT_INDEX_ROWS   => array()
                        );
 
                        // Initialize limit/skip
@@ -398,7 +369,7 @@ class LocalFileDatabase extends BaseDatabaseFrontend implements DatabaseFrontend
                        $idx = 1;
 
                        // Read the directory with some exceptions
-                       while (($dataFile = $directoryInstance->readDirectoryExcept(array('.', '..', '.htaccess', '.svn', "info." . $this->getFileExtension()))) && ($limitFound < $criteriaInstance->getLimit())) {
+                       while (($dataFile = $directoryInstance->readDirectoryExcept(array('.', '..', '.htaccess', '.svn', 'info.' . $this->getFileExtension()))) && (($limitFound < $criteriaInstance->getLimit()) || ($criteriaInstance->getLimit() == 0))) {
                                // Does the extension match?
                                if (substr($dataFile, -(strlen($this->getFileExtension()))) !== $this->getFileExtension()) {
                                        // Skip this file!
@@ -416,8 +387,8 @@ class LocalFileDatabase extends BaseDatabaseFrontend implements DatabaseFrontend
                                                $criteria = $criteriaInstance->getCriteriaElemnent($key);
 
                                                // Is the criteria met?
+                                               //* NOISY-DEBUG: */ $this->debugOutput('DATABASE: criteria[' . gettype($criteria) . ']=' . $criteria . ',()=' . strlen($criteria) . ',value=' . $value . ',()=' . strlen($value));
                                                if ((!is_null($criteria)) && ($criteria == $value))  {
-
                                                        // Shall we skip this entry?
                                                        if ($criteriaInstance->getSkip() > 0) {
                                                                // We shall skip some entries
@@ -432,7 +403,8 @@ class LocalFileDatabase extends BaseDatabaseFrontend implements DatabaseFrontend
                                                        $dataArray[$this->getIndexKey()] = $idx;
 
                                                        // Entry found!
-                                                       $resultData['rows'][] = $dataArray;
+                                                       //* NOISY-DEBUG: */ $this->debugOutput('DATABASE: indexKey=' . $this->getIndexKey() . ',idx=' . $idx . ',dataArray=' . print_r($dataArray, true));
+                                                       $resultData[BaseDatabaseFrontend::RESULT_INDEX_ROWS][] = $dataArray;
 
                                                        // Count found entries up
                                                        $limitFound++;
@@ -457,14 +429,14 @@ class LocalFileDatabase extends BaseDatabaseFrontend implements DatabaseFrontend
                } catch (PathIsNoDirectoryException $e) {
                        // Path not found means "table not found" for real databases...
                        $this->lastException = $e;
-                       $this->lastError = $e->getMessage();
+                       $this->lastError     = $e->getMessage();
 
                        // So throw an SqlException here with faked error message
                        throw new SqlException (array($this, sprintf("Table &#39;%s&#39; not found", $tableName), self::DB_CODE_TABLE_MISSING), self::EXCEPTION_SQL_QUERY);
                } catch (FrameworkException $e) {
                        // Catch all exceptions and store them in last error
                        $this->lastException = $e;
-                       $this->lastError = $e->getMessage();
+                       $this->lastError     = $e->getMessage();
                }
 
                // Return the gathered result
@@ -495,10 +467,10 @@ class LocalFileDatabase extends BaseDatabaseFrontend implements DatabaseFrontend
                } catch (FrameworkException $e) {
                        // Catch all exceptions and store them in last error
                        $this->lastException = $e;
-                       $this->lastError = $e->getMessage();
+                       $this->lastError     = $e->getMessage();
 
                        // Throw an SQL exception
-                       throw new SqlException (array($this, sprintf("Cannot write data to table &#39;%s&#39;", $tableName), self::DB_CODE_TABLE_UNWRITEABLE), self::EXCEPTION_SQL_QUERY);
+                       throw new SqlException(array($this, sprintf("Cannot write data to table &#39;%s&#39;, is the table created?", $dataSetInstance->getTableName()), self::DB_CODE_TABLE_UNWRITEABLE), self::EXCEPTION_SQL_QUERY);
                }
        }
 
@@ -511,7 +483,7 @@ class LocalFileDatabase extends BaseDatabaseFrontend implements DatabaseFrontend
         */
        public function queryUpdateDataSet (StoreableCriteria $dataSetInstance) {
                // Create full path name
-               $pathName = $this->getSavePath() . $dataSetInstance->getTableName() . '/';
+               $pathName = $this->getConfigInstance()->getConfigEntry('local_db_path') . $dataSetInstance->getTableName() . '/';
 
                // Try all the requests
                try {
@@ -589,7 +561,7 @@ class LocalFileDatabase extends BaseDatabaseFrontend implements DatabaseFrontend
                        $this->lastError = $e->getMessage();
 
                        // Throw an SQL exception
-                       throw new SqlException (array($this, sprintf("Cannot write data to table &#39;%s&#39;", $dataSetInstance->getTableName()), self::DB_CODE_TABLE_UNWRITEABLE), self::EXCEPTION_SQL_QUERY);
+                       throw new SqlException(array($this, sprintf("Cannot write data to table &#39;%s&#39;, is the table created?", $dataSetInstance->getTableName()), self::DB_CODE_TABLE_UNWRITEABLE), self::EXCEPTION_SQL_QUERY);
                }
        }
 
@@ -602,7 +574,7 @@ class LocalFileDatabase extends BaseDatabaseFrontend implements DatabaseFrontend
         */
        public function getPrimaryKeyOfTable ($tableName) {
                // Default key is null
-               $primaryKey = null;
+               $primaryKey = NULL;
 
                // Does the table information exist?
                if (isset($this->tableInfo[$tableName])) {