0.3.0 inital import
[mailer.git] / inc / database.php
1 <?php
2 // Initialize layer
3 $layer = null;
4
5 // Is the type defined?
6 if (!defined('_DB_TYPE')) {
7         // Abort here
8         ApplicationEntryPoint::app_die("[Main:] Please define a database type first!<br />
9 E.g.:<pre>&#36;GLOBALS[&#39;cfg&#39]->defineDatabaseType(&quot;local&quot;);</pre>
10 This will choose the local-file-based database type (layer)");
11 }
12
13 // Generate FQFN for the database layer
14 $INC = sprintf("%sinc/database/lib-%s%s", PATH, _DB_TYPE, FrameworkConfiguration::getInstance()->readConfig("php_extension"));
15
16 // Load the database layer include
17 if ((file_exists($INC)) && (is_file($INC)) && (is_readable($INC))) {
18         // Load the layer
19         require_once($INC);
20 } else {
21         // Layer is missing!
22         ApplicationEntryPoint::app_die(sprintf("[Main:] Database layer is missing! (%s) -&gt; R.I.P.",
23                 _DB_TYPE
24         ));
25 }
26
27 // Clean it up
28 unset($INC);
29
30 // Prepare database instance
31 try {
32         $db = DatabaseConnection::createDatabaseConnection(DebugMiddleware::getInstance(), $layer);
33 } catch (NullPointerException $e) {
34         ApplicationEntryPoint::app_die(sprintf("[Main:] Datenbank-System nicht initialisiert. Reason: <strong>%s</strong><br />\n",
35                 $e->getMessage()
36         ));
37 } catch (InvalidDirectoryResourceException $e) {
38         ApplicationEntryPoint::app_die(sprintf("[Main:] Datenbank-System nicht initialisiert. Reason: <strong>%s</strong><br />\n",
39                 $e->getMessage()
40         ));
41 } catch (PathIsEmptyException $e) {
42         ApplicationEntryPoint::app_die(sprintf("[Main:] Datenbank-System nicht initialisiert. Reason: <strong>%s</strong><br />\n",
43                 $e->getMessage()
44         ));
45 } catch (PathIsNoDirectoryException $e) {
46         ApplicationEntryPoint::app_die(sprintf("[Main:] Datenbank-System nicht initialisiert. Reason: <strong>%s</strong><br />\n",
47                 $e->getMessage()
48         ));
49 } catch (PathReadProtectedException $e) {
50         ApplicationEntryPoint::app_die(sprintf("[Main:] Datenbank-System nicht initialisiert. Reason: <strong>%s</strong><br />\n",
51                 $e->getMessage()
52         ));
53 } catch (DirPointerNotOpenedException $e) {
54         ApplicationEntryPoint::app_die(sprintf("[Main:] Datenbank-System nicht initialisiert. Reason: <strong>%s</strong><br />\n",
55                 $e->getMessage()
56         ));
57 }
58
59 // Datenbankobjekt debuggen
60 if (defined('DEBUG_DATABASE_OBJ')) {
61         DebugMiddleware::getInstance()->output(sprintf("Die Datenbank-Schicht sieht wie folgt aus:<br />
62 <pre>%s</pre>\n",
63                 print_r($db, true)
64         ));
65 }
66
67 // [EOF]
68 ?>