PluginProbe
Depicter — Popup & Slider Builder / trunk
Depicter — Popup & Slider Builder vtrunk
4.8.1 trunk 1.0.0 1.1.0 1.1.2 1.1.4 1.1.6 1.1.7 1.1.8 1.1.9 1.2.0 1.3.0 1.3.1 1.3.2 1.3.3 1.3.5 1.3.8 1.5.0 1.5.1 1.5.2 1.5.5 1.6.0 1.6.1 1.6.2 1.7.0 All 76 releases
depicter / vendor / averta / wordpress / src / Database / ORM / Connection.php

Connection.php in Depicter — Popup & Slider Builder trunk, at vendor/averta/wordpress/src/Database/ORM/Connection.php

72 lines 1.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace Averta\WordPress\Database\ORM;
4
5 use TypeRocket\Database\Connection as TypeRockerConnection;
6 use TypeRocket\Database\Connectors\DatabaseConnector;
7 use TypeRocket\Database\Connectors\WordPressCoreDatabaseConnector;
8
9 class Connection extends TypeRockerConnection
10 {
11 const ALIAS = 'averta-db-database';
12
13 /**
14 * @return static
15 */
16 public static function initDefault()
17 {
18 $default = Config::getFromContainer()->locate('database.default');
19 $connection = new static;
20
21 if(!$connection->exists($default)) {
22 $config = null;
23
24 if(is_null($default)) {
25 $default = 'wp';
26 $config = [
27 'driver' => WordPressCoreDatabaseConnector::class
28 ];
29 }
30
31 $connection->addFromConfig($default, $config);
32 }
33
34 return $connection;
35 }
36
37 /**
38 * @param null|string $name
39 * @param array|null $config
40 *
41 * @return $this
42 */
43 public function addFromConfig(?string $name, ?array $config = null)
44 {
45 if(is_null($config) || is_null($name)) {
46 $drivers = Config::getFromContainer()->locate('database.drivers');
47 $config = $drivers[$name] ?? Config::getFromContainer()->locate('database.default');
48
49 if($name && !$drivers && !$config) {
50 throw new \Error(__("TypeRocket database connection configuration not found for \"{$name}\"", 'depicter'));
51 }
52 }
53
54 /** @var DatabaseConnector $connector */
55 $connector = new $config['driver'];
56 $connector->connect($name, $config);
57 return $this->add($connector->getName(), $connector->getConnection());
58 }
59
60 /**
61 * @return \wpdb
62 */
63 public function default()
64 {
65 $default = Config::getFromContainer()->locate('database.default', 'wp');
66 return $this->get($default);
67 }
68
69
70
71 }
72