source: temp/test-xoops.ec-cube.net/html/class/database/databasefactory.php @ 405

Revision 405, 1.7 KB checked in by root, 20 years ago (diff)
Line 
1<?php
2class XoopsDatabaseFactory
3{
4
5    function XoopsDatabaseFactory()
6    {
7    }
8
9    /**
10     * Get a reference to the only instance of database class and connects to DB
11     *
12     * if the class has not been instantiated yet, this will also take
13     * care of that
14     *
15     * @static
16     * @staticvar   object  The only instance of database class
17     * @return      object  Reference to the only instance of database class
18     */
19    function &getDatabaseConnection()
20    {
21        static $instance;
22        if (!isset($instance)) {
23            $file = XOOPS_ROOT_PATH.'/class/database/'.XOOPS_DB_TYPE.'database.php';
24            require_once $file;
25            if (!defined('XOOPS_DB_PROXY')) {
26                $class = 'Xoops'.ucfirst(XOOPS_DB_TYPE).'DatabaseSafe';
27            } else {
28                $class = 'Xoops'.ucfirst(XOOPS_DB_TYPE).'DatabaseProxy';
29            }
30            $instance =& new $class();
31            $instance->setLogger(XoopsLogger::instance());
32            $instance->setPrefix(XOOPS_DB_PREFIX);
33            if (!$instance->connect()) {
34                trigger_error("Unable to connect to database", E_USER_ERROR);
35            }
36        }
37        return $instance;
38    }
39
40    /**
41     * Gets a reference to the only instance of database class. Currently
42     * only being used within the installer.
43     *
44     * @static
45     * @staticvar   object  The only instance of database class
46     * @return      object  Reference to the only instance of database class
47     */
48    function &getDatabase()
49    {
50        static $database;
51        if (!isset($database)) {
52            $file = XOOPS_ROOT_PATH.'/class/database/'.XOOPS_DB_TYPE.'database.php';
53            require_once $file;
54            if (!defined('XOOPS_DB_PROXY')) {
55                $class = 'Xoops'.ucfirst(XOOPS_DB_TYPE).'DatabaseSafe';
56            } else {
57                $class = 'Xoops'.ucfirst(XOOPS_DB_TYPE).'DatabaseProxy';
58            }
59            $database =& new $class();
60        }
61        return $database;
62    }
63
64
65}
66?>
Note: See TracBrowser for help on using the repository browser.