XOOPS  2.6.0
Factory.php
Go to the documentation of this file.
1 <?php
12 namespace Xoops\Core\Database;
13 
15 
31 class Factory
32 {
33 
51  public static function getConnection($options = null)
52  {
53  static $instance;
54  if (!isset($instance)) {
56  $config = new \Doctrine\DBAL\Configuration();
57  $config->setSQLLogger(new XoopsDebugStack());
58  $parameters = \XoopsBaseConfig::get('db-parameters');
59  if (!empty($parameters) && is_array($parameters)) {
60  $connectionParams = $parameters;
61  $connectionParams['wrapperClass'] = '\\Xoops\\Core\\Database\\Connection';
62  } else {
63  $driver = 'pdo_' . \XoopsBaseConfig::get('db-type');
64  $connectionParams = array(
65  'dbname' => \XoopsBaseConfig::get('db-name'),
66  'user' => \XoopsBaseConfig::get('db-user'),
67  'password' => \XoopsBaseConfig::get('db-pass'),
68  'host' => \XoopsBaseConfig::get('db-host'),
69  'charset' => \XoopsBaseConfig::get('db-charset'),
70  'driver' => $driver,
71  'wrapperClass' => '\\Xoops\\Core\\Database\\Connection',
72  );
73  // Support for other doctrine databases
74  $xoops_db_port = \XoopsBaseConfig::get('db-port');
75  if (!empty($xoops_db_port)) {
76  $connectionParams['port'] = $xoops_db_port;
77  }
78  $xoops_db_socket = \XoopsBaseConfig::get('db-socket');
79  if (!empty($xoops_db_socket)) {
80  $connectionParams['unix_socket'] = $xoops_db_socket;
81  }
82  if (!is_null($options) && is_array($options)) {
83  $connectionParams['driverOptions'] = $options;
84  }
85  }
86 
87  $instance = \Doctrine\DBAL\DriverManager::getConnection(
88  $connectionParams,
89  $config
90  );
91  }
92  return $instance;
93  }
94 }
static getInstance()
Definition: Xoops.php:160
$options['editor']
$xoops
Definition: admin.php:25
static get($name)
static getConnection($options=null)
Definition: Factory.php:51
$config
Definition: Xoops.php:43