* @version 0.0.0
* @copyright Copyright (c) 2007 - 2009 Roland Haeder, this is free software
* @license GNU GPL 3.0 or any newer version
* @link http://www.ship-simu.org
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
// Initialize layer
$layerInstance = null;
// Get config instance
$cfg = FrameworkConfiguration::getInstance();
// Generate FQFN for the database layer
$INC = sprintf("%sinc/database/lib-%s.php",
$cfg->readConfig('base_path'),
$cfg->readConfig('db_type')
);
// Load the database layer include
if ((file_exists($INC)) && (is_file($INC)) && (is_readable($INC))) {
// Load the layer
require_once($INC);
} else {
// Layer is missing!
ApplicationEntryPoint::app_die(sprintf("[Main:] Database layer is missing! (%s) -> R.I.P.",
$cfg->readConfig('db_type')
));
}
// Clean it up
unset($INC);
// Prepare database instance
try {
$db = DatabaseConnection::createDatabaseConnection(DebugMiddleware::getInstance(), $layerInstance);
} catch (NullPointerException $e) {
ApplicationEntryPoint::app_die(sprintf("[Main:] Database sub-system not initialized for the follwing reason: %s
\n",
$e->getMessage()
));
} catch (InvalidDirectoryResourceException $e) {
ApplicationEntryPoint::app_die(sprintf("[Main:] Database sub-system not initialized for the follwing reason: %s
\n",
$e->getMessage()
));
} catch (PathIsEmptyException $e) {
ApplicationEntryPoint::app_die(sprintf("[Main:] Database sub-system not initialized for the follwing reason: %s
\n",
$e->getMessage()
));
} catch (PathIsNoDirectoryException $e) {
ApplicationEntryPoint::app_die(sprintf("[Main:] Database sub-system not initialized for the follwing reason: %s
\n",
$e->getMessage()
));
} catch (PathReadProtectedException $e) {
ApplicationEntryPoint::app_die(sprintf("[Main:] Database sub-system not initialized for the follwing reason: %s
\n",
$e->getMessage()
));
} catch (DirPointerNotOpenedException $e) {
ApplicationEntryPoint::app_die(sprintf("[Main:] Database sub-system not initialized for the follwing reason: %s
\n",
$e->getMessage()
));
}
// Is the app variable there and valid?
if (is_object($app)) $app->setDatabaseInstance($db);
// [EOF]
?>