1 | <?php |
||
8 | class Schedules { |
||
9 | |||
10 | /** |
||
11 | * An array of schedules |
||
12 | * |
||
13 | * @var mixed |
||
14 | * @access private |
||
15 | */ |
||
16 | private $schedules; |
||
17 | |||
18 | /** |
||
19 | * |
||
20 | */ |
||
21 | protected static $instance; |
||
22 | |||
23 | public static function get_instance() { |
||
32 | |||
33 | /** |
||
34 | * Load the schedules from wp_options and store in $this->schedules |
||
35 | * |
||
36 | */ |
||
37 | private function __construct() { |
||
40 | |||
41 | public function refresh_schedules() { |
||
42 | |||
43 | $schedules = get_transient( 'hmbkp_schedules' ); |
||
44 | |||
45 | if ( ! $schedules ) { |
||
46 | |||
47 | global $wpdb; |
||
|
|||
48 | |||
49 | // Load all schedule options from the database. |
||
50 | $schedules = $wpdb->get_col( "SELECT option_name from $wpdb->options WHERE option_name LIKE 'hmbkp\_schedule\_%'" ); |
||
51 | |||
52 | set_transient( 'hmbkp_schedules', $schedules, WEEK_IN_SECONDS ); |
||
53 | } |
||
54 | |||
55 | // Instantiate each one as a Scheduled_Backup |
||
56 | $this->schedules = array_map( array( $this, 'instantiate' ), array_filter( (array) $schedules ) ); |
||
57 | |||
58 | } |
||
59 | |||
60 | /** |
||
61 | * Get an array of schedules |
||
62 | * |
||
63 | * @return Scheduled_Backup[] |
||
64 | */ |
||
65 | public function get_schedules() { |
||
68 | |||
69 | /** |
||
70 | * Get a schedule by ID |
||
71 | * |
||
72 | * @param $id |
||
73 | * @return Scheduled_Backup |
||
74 | */ |
||
75 | public function get_schedule( $id ) { |
||
85 | |||
86 | /** |
||
87 | * Instantiate the individual scheduled backup objects |
||
88 | * |
||
89 | * @access private |
||
90 | * @param string $id |
||
91 | * @return Scheduled_Backup |
||
92 | */ |
||
93 | private function instantiate( $id ) { |
||
96 | } |
||
97 |
Instead of relying on
global
state, we recommend one of these alternatives:1. Pass all data via parameters
2. Create a class that maintains your state