Index: branches/2.8.x/CHANGELOG
===================================================================
--- branches/2.8.x/CHANGELOG	(revision 2129)
+++ branches/2.8.x/CHANGELOG	(revision 2130)
@@ -11,6 +11,8 @@
 ! = Update/Change
 ===============================================================================
 
+22 Jun -2015 Build 2130 Manuela v.d.Decken(DarkViper)
+! framework/initialize.php optimised read-settings routine for speed and memory consumption.
 19 Jun -2015 Build 2129 Manuela v.d.Decken(DarkViper)
 # framework/WbDatabase typo corrections
 ! framework/initialize.php added ErrorHandler and ERROR-LOG file
Index: branches/2.8.x/wb/admin/interface/version.php
===================================================================
--- branches/2.8.x/wb/admin/interface/version.php	(revision 2129)
+++ branches/2.8.x/wb/admin/interface/version.php	(revision 2130)
@@ -51,5 +51,5 @@
 
 // check if defined to avoid errors during installation (redirect to admin panel fails if PHP error/warnings are enabled)
 if(!defined('VERSION')) define('VERSION', '2.8.4');
-if(!defined('REVISION')) define('REVISION', '2129');
+if(!defined('REVISION')) define('REVISION', '2130');
 if(!defined('SP')) define('SP', '');
Index: branches/2.8.x/wb/framework/initialize.php
===================================================================
--- branches/2.8.x/wb/framework/initialize.php	(revision 2129)
+++ branches/2.8.x/wb/framework/initialize.php	(revision 2130)
@@ -121,7 +121,6 @@
     // check for valid file request. Becomes more stronger in next version
         initCheckValidCaller(array('save.php','index.php','config.php','upgrade-script.php'));
         $aCfg = array();
-
         $sSetupFile = dirname(__DIR__).'/setup.ini.php';
         if(is_readable($sSetupFile)) {
             $aCfg = parse_ini_file($sSetupFile, true);
@@ -326,21 +325,19 @@
 // load global settings from database and define global consts from ---
     $sql = 'SELECT `name`, `value` FROM `'.$oDb->TablePrefix.'settings`';
     if(($oSettings = $oDb->doQuery($sql))) {
-        if (($aRecords = $oSettings->fetchAll(MYSQLI_NUM))) {
-            $iNum = sizeof($aRecords);
-            for ($i = 0; $i < $iNum; $i++) {
-                $aSetting = $aRecords[$i];
+        if (($aRecords = $oSettings->fetchAll(MYSQLI_ASSOC))) {
+            for ($i = 0, $iNum = sizeof($aRecords); $i < $iNum; $i++) {
                 //sanitize true/false values
-                $aSetting['value'] = ($aSetting['value'] == 'true'
+                $aRecords[$i]['value'] = ($aRecords[$i]['value'] == 'true'
                                       ? true
-                                      : ($aSetting['value'] == 'false'
+                                      : ($aRecords[$i]['value'] == 'false'
                                          ? false
-                                         : $aSetting['value'])
+                                         : $aRecords[$i]['value'])
                                      );
-                $sSettingName = strtoupper($aSetting['name']);
+                $sSettingName = strtoupper($aRecords[$i]['name']);
                 switch($sSettingName):
                     case 'STRING_FILE_MODE':
-                        $iTmp = ((intval(octdec($aSetting['value'])) & ~0111)|0600);
+                        $iTmp = ((intval(octdec($aRecords[$i]['value'])) & ~0111)|0600);
                         if(!defined('OCTAL_FILE_MODE')) { define('OCTAL_FILE_MODE', $iTmp); } // deprecated
                         if(!defined('FILE_MODE_OCTAL')) { define('FILE_MODE_OCTAL', $iTmp); }
                         if(!defined('STRING_FILE_MODE')) { define('STRING_FILE_MODE', sprintf('0%03o', $iTmp)); } // deprecated
@@ -347,7 +344,7 @@
                         if(!defined('FILE_MODE_STRING')) { define('FILE_MODE_STRING', sprintf('0%03o', $iTmp)); }
                         break;
                     case 'STRING_DIR_MODE':
-                        $iTmp = (intval(octdec($aSetting['value'])) |0711);
+                        $iTmp = (intval(octdec($aRecords[$i]['value'])) |0711);
                         if(!defined('OCTAL_DIR_MODE')) { define('OCTAL_DIR_MODE', $iTmp); } // deprecated
                         if(!defined('DIR_MODE_OCTAL')) { define('DIR_MODE_OCTAL', $iTmp); }
                         if(!defined('STRING_DIR_MODE')) { define('STRING_DIR_MODE', sprintf('0%03o', $iTmp)); } // deprecated
@@ -355,15 +352,16 @@
                         break;
                     case 'PAGES_DIRECTORY':
                         // sanitize pages_directory
-                        $sTmp = trim($aSetting['value'], '/');
+                        $sTmp = trim($aRecords[$i]['value'], '/');
                         $sTmp = ($sTmp == '' ? '' : '/'.$sTmp);
                         if(!defined('PAGES_DIRECTORY')) { define('PAGES_DIRECTORY', $sTmp); }
                         break;
                     default: // make global const from setting
-                        if(!defined($sSettingName)) { define($sSettingName, $aSetting['value']); }
+                        if(!defined($sSettingName)) { define($sSettingName, $aRecords[$i]['value']); }
                         break;
                 endswitch;
             }
+            unset($aRecords);
         } else {
             throw new AppException('no settings found');
         }
