PluginProbe ʕ •ᴥ•ʔ
Booking for Appointments and Events Calendar – Amelia / trunk
Booking for Appointments and Events Calendar – Amelia vtrunk
2.4.3 2.4.2 2.4.1 2.4 trunk 1.2.1 1.2.10 1.2.11 1.2.12 1.2.13 1.2.14 1.2.15 1.2.16 1.2.17 1.2.18 1.2.19 1.2.2 1.2.20 1.2.21 1.2.22 1.2.23 1.2.24 1.2.25 1.2.26 1.2.27 1.2.28 1.2.29 1.2.3 1.2.30 1.2.31 1.2.32 1.2.33 1.2.34 1.2.35 1.2.36 1.2.37 1.2.38 1.2.4 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 2.0 2.0.1 2.0.2 2.1 2.1.1 2.1.2 2.1.3 2.2 2.2.1 2.3
ameliabooking / src / Infrastructure / WP / InstallActions / DB / AbstractDatabaseTable.php
ameliabooking / src / Infrastructure / WP / InstallActions / DB Last commit date
Bookable 2 weeks ago Booking 2 weeks ago Cache 2 months ago Coupon 2 months ago CustomField 2 months ago Gallery 2 months ago Location 2 months ago Notification 1 month ago Payment 2 months ago Tax 2 months ago User 2 months ago AbstractDatabaseTable.php 2 months ago
AbstractDatabaseTable.php
102 lines
1 <?php
2
3 /**
4 * @copyright © Melograno Ventures. All rights reserved.
5 * @licence See LICENCE.md for license details.
6 */
7
8 namespace AmeliaBooking\Infrastructure\WP\InstallActions\DB;
9
10 use AmeliaBooking\Domain\Common\Exceptions\InvalidArgumentException;
11
12 /**
13 * Class AbstractDatabaseTable
14 *
15 * @package AmeliaBooking\Infrastructure\WP\InstallActions\DB
16 */
17 class AbstractDatabaseTable
18 {
19 public const TABLE = '';
20
21 /**
22 * Return charset collate for the database table
23 */
24 public static function getCharsetCollate(): string
25 {
26 global $wpdb;
27
28 return $wpdb->get_charset_collate();
29 }
30
31 /**
32 * @return string
33 * @throws InvalidArgumentException
34 */
35 public static function getTableName()
36 {
37 if (!static::TABLE) {
38 throw new InvalidArgumentException('Table name is not provided');
39 }
40
41 global $wpdb;
42 return $wpdb->prefix . 'amelia_' . static::TABLE;
43 }
44
45 /**
46 * @return string
47 * @throws InvalidArgumentException
48 */
49 public static function buildTable()
50 {
51 return '';
52 }
53
54 /**
55 * Create new table in the database
56 */
57 public static function init()
58 {
59 require_once ABSPATH . 'wp-admin/includes/upgrade.php';
60 dbDelta(static::buildTable());
61
62 global $wpdb;
63
64 foreach (static::alterTable() as $command) {
65 $wpdb->query($command);
66 }
67 }
68
69 /**
70 * Delete table table from the database
71 *
72 * @throws InvalidArgumentException
73 */
74 public static function delete()
75 {
76 global $wpdb;
77
78 $table = self::getTableName();
79
80 $sql = "DROP TABLE IF EXISTS {$table};";
81 $wpdb->query($sql);
82 }
83
84 /**
85 * @return boolean
86 */
87 public static function isValidTablePrefix()
88 {
89 global $wpdb;
90
91 return strlen($wpdb->prefix) <= 16;
92 }
93
94 /**
95 * @return array
96 */
97 public static function alterTable()
98 {
99 return [];
100 }
101 }
102