PluginProbe
WANotifier for Forms and Actions / 2.7.5
WANotifier for Forms and Actions v2.7.5
3.1.1 3.1.0 3.0.4 2.7.10 2.7.11 2.7.12 2.7.13 2.7.2 2.7.3 2.7.4 2.7.5 2.7.6 2.7.7 2.7.8 2.7.9 3.0.0 3.0.1 3.0.2 3.0.3 trunk 0.1.0 0.1.1 1.0.0 1.0.1 1.0.2 All 67 releases
notifier / libraries / action-scheduler / classes / ActionScheduler_Versions.php

ActionScheduler_Versions.php in WANotifier for Forms and Actions 2.7.5, at libraries/action-scheduler/classes/ActionScheduler_Versions.php

62 lines 1.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 /**
4 * Class ActionScheduler_Versions
5 */
6 class ActionScheduler_Versions {
7 /**
8 * @var ActionScheduler_Versions
9 */
10 private static $instance = NULL;
11
12 private $versions = array();
13
14 public function register( $version_string, $initialization_callback ) {
15 if ( isset($this->versions[$version_string]) ) {
16 return FALSE;
17 }
18 $this->versions[$version_string] = $initialization_callback;
19 return TRUE;
20 }
21
22 public function get_versions() {
23 return $this->versions;
24 }
25
26 public function latest_version() {
27 $keys = array_keys($this->versions);
28 if ( empty($keys) ) {
29 return false;
30 }
31 uasort( $keys, 'version_compare' );
32 return end($keys);
33 }
34
35 public function latest_version_callback() {
36 $latest = $this->latest_version();
37 if ( empty($latest) || !isset($this->versions[$latest]) ) {
38 return '__return_null';
39 }
40 return $this->versions[$latest];
41 }
42
43 /**
44 * @return ActionScheduler_Versions
45 * @codeCoverageIgnore
46 */
47 public static function instance() {
48 if ( empty(self::$instance) ) {
49 self::$instance = new self();
50 }
51 return self::$instance;
52 }
53
54 /**
55 * @codeCoverageIgnore
56 */
57 public static function initialize_latest_version() {
58 $self = self::instance();
59 call_user_func($self->latest_version_callback());
60 }
61 }
62