-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdback-db-tools.php
More file actions
79 lines (65 loc) · 2.8 KB
/
Copy pathdback-db-tools.php
File metadata and controls
79 lines (65 loc) · 2.8 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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
<?php
/**
* Plugin Name: DBack DB Tools
* Description: Pure-PHP database export, import, and SQL query tools for DBack. No shell commands required.
* Version: 1.1.3
* Author: DBack
* Requires PHP: 7.4
* Requires at least: 5.8
*/
if (!defined('ABSPATH')) {
exit;
}
define('DBACK_DB_TOOLS_VERSION', '1.1.3');
define('DBACK_DB_TOOLS_FILE', __FILE__);
define('DBACK_DB_TOOLS_PATH', plugin_dir_path(__FILE__));
define('DBACK_DB_TOOLS_URL', plugin_dir_url(__FILE__));
define('DBACK_DB_TOOLS_REST_NAMESPACE', 'dback/v1');
define('DBACK_HARDCODED_API_KEY', '{{DBACK_API_KEY}}');
require_once DBACK_DB_TOOLS_PATH . 'includes/class-dback-api-key.php';
require_once DBACK_DB_TOOLS_PATH . 'includes/class-dback-database.php';
require_once DBACK_DB_TOOLS_PATH . 'includes/class-dback-error-logger.php';
require_once DBACK_DB_TOOLS_PATH . 'includes/class-dback-gzip-stream.php';
require_once DBACK_DB_TOOLS_PATH . 'vendor/ifsnop/mysqldump-php/src/Ifsnop/Mysqldump/Mysqldump.php';
require_once DBACK_DB_TOOLS_PATH . 'includes/class-dback-exporter-mysqli.php';
require_once DBACK_DB_TOOLS_PATH . 'includes/class-dback-exporter.php';
require_once DBACK_DB_TOOLS_PATH . 'includes/class-dback-importer.php';
require_once DBACK_DB_TOOLS_PATH . 'includes/class-dback-query-runner.php';
require_once DBACK_DB_TOOLS_PATH . 'includes/class-dback-preflight.php';
require_once DBACK_DB_TOOLS_PATH . 'includes/class-dback-rest-controller.php';
require_once DBACK_DB_TOOLS_PATH . 'includes/class-dback-diagnostics.php';
require_once DBACK_DB_TOOLS_PATH . 'includes/class-dback-admin-page.php';
/**
* Plugin activation: sync API key and refresh rewrite rules for REST routes.
*/
function dback_db_tools_activate() {
DBack_Api_Key::activate();
$controller = new DBack_Rest_Controller();
$controller->register_routes();
flush_rewrite_rules(false);
}
register_activation_hook(__FILE__, 'dback_db_tools_activate');
final class DBack_DB_Tools_Plugin {
/** @var self|null */
private static $instance = null;
/** @var DBack_Rest_Controller */
private $rest_controller;
/** @var DBack_Admin_Page */
private $admin_page;
public static function instance() {
if (null === self::$instance) {
self::$instance = new self();
}
return self::$instance;
}
private function __construct() {
$this->rest_controller = new DBack_Rest_Controller();
$this->admin_page = new DBack_Admin_Page();
add_action('rest_api_init', array($this->rest_controller, 'register_routes'));
add_action('admin_menu', array($this->admin_page, 'register_menu'));
add_action('admin_enqueue_scripts', array($this->admin_page, 'enqueue_assets'));
DBack_Diagnostics::register_plugin_links();
DBack_Diagnostics::register_admin_notices();
}
}
DBack_DB_Tools_Plugin::instance();