-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathDBConnector.php
More file actions
62 lines (51 loc) · 1.26 KB
/
DBConnector.php
File metadata and controls
62 lines (51 loc) · 1.26 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
<?php
namespace TobyMaxham;
use Illuminate\Database\Capsule\Manager as Capsule;
/**
* Class Connector
* @package TobyMaxham
* @author Tobias Maxham <git2015@maxham.de>
*/
class DBConnector
{
const CHARSET = 'utf8';
const COLLATION = 'utf8_unicode_ci';
const DRIVER = 'mysql';
private static $connections = [];
/**
* @var Capsule $capsule
*/
private static $capsule;
/**
* @param array $config
* @param string $name
*/
public static function connect($config, $name = 'default')
{
$capsule = self::addCapsule();
self::addConnection($config, $name);
$capsule->bootEloquent();
}
/**
* @return Capsule $capsule
*/
private static function addCapsule()
{
self::$capsule = new Capsule();
return self::$capsule;
}
/**
* @param array $config
* @param string $name
*/
public static function addConnection($config, $name = 'default')
{
if (is_null(self::$capsule)) self::addCapsule();
if(!isset($config['collation'])) $config['collation'] = self::COLLATION;
if(!isset($config['charset'])) $config['charset'] = self::CHARSET;
if(!isset($config['prefix'])) $config['prefix'] = '';
if(!isset($config['driver'])) $config['driver'] = self::DRIVER;
self::$capsule->addConnection($config, $name);
self::$connections[] = $name;
}
}