PluginProbe ʕ •ᴥ•ʔ
WP STAGING – WordPress Backups, Restore, Migration & Clone / 4.9.5
WP STAGING – WordPress Backups, Restore, Migration & Clone v4.9.5
4.9.5 4.9.4 4.9.3 4.9.2 4.9.1 4.9.0 4.8.1 trunk 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.10.0 3.2.0 3.3.1 3.3.2 3.3.3 3.4.1 3.4.3 3.5.0 3.6.0 3.7.1 3.8.0 3.8.1 3.8.2 3.8.3 3.8.4 3.8.5 3.8.6 3.8.7 3.9.0 3.9.1 3.9.2 3.9.3 3.9.4 4.0.0 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.0 4.7.0 4.7.1 4.7.2 4.7.3 4.8.0
wp-staging / Framework / Adapter / SourceDatabase.php
wp-staging / Framework / Adapter Last commit date
Database 1 year ago Database.php 1 year ago DatabaseInterface.php 1 year ago DateTimeAdapter.php 1 year ago Directory.php 3 weeks ago DirectoryInterface.php 1 year ago Maintenance.php 6 months ago PhpAdapter.php 8 months ago SourceDatabase.php 2 days ago WpAdapter.php 6 months ago
SourceDatabase.php
70 lines
1 <?php
2
3 namespace WPStaging\Framework\Adapter;
4
5 use stdClass;
6 use WPStaging\Core\WPStaging;
7 use WPStaging\Framework\Database\ExternalDatabaseConfiguration;
8 use wpdb;
9
10 /**
11 * Resolves the database connection for a classic staging site.
12 */
13 class SourceDatabase
14 {
15 /** @var wpdb */
16 private $wpdb;
17
18 /** @var object */
19 private $options;
20
21 /** @var ExternalDatabaseConfiguration */
22 private $externalDatabaseConfiguration;
23
24 public function __construct($options = stdClass::class)
25 {
26 $this->options = $options;
27 $this->wpdb = WPStaging::make('wpdb');
28 $this->externalDatabaseConfiguration = new ExternalDatabaseConfiguration();
29 }
30
31 /**
32 * @return bool
33 */
34 public function isExternalDatabase()
35 {
36 return $this->externalDatabaseConfiguration->isEnabled($this->options);
37 }
38
39 /**
40 * @return object
41 */
42 private function getExternalDb()
43 {
44 return new wpdb($this->options->databaseUser, str_replace("\\\\", "\\", $this->options->databasePassword), $this->options->databaseDatabase, $this->options->databaseServer);
45 }
46
47 /**
48 * Check if source database is a local or external one and get the corresponding database object
49 *
50 * @return wpdb
51 */
52 public function getDatabase()
53 {
54 if ($this->isExternalDatabase()) {
55 return $this->getExternalDb();
56 }
57
58 return $this->wpdb;
59 }
60
61 /**
62 * @param object $options
63 * @return void
64 */
65 public function setOptions($options)
66 {
67 $this->options = $options;
68 }
69 }
70