PluginProbe
FlyWP Helper – Page Cache, Page Optimization, Emails for FlyWP Server Control Panel / 0.1
FlyWP Helper – Page Cache, Page Optimization, Emails for FlyWP Server Control Panel v0.1
1.7.1 1.7.0 1.6.0 1.5.2 trunk 0.1 0.2.0 0.2.1 0.3 0.3.1 0.3.2 0.3.3 0.3.4 0.4 0.4.1 0.4.2 0.4.3 1.0 1.1 1.2 1.3.1 1.4.0 1.4.1 1.5.0 1.5.1 All 26 releases
← All changes | flywp.php +41 -79 1.5.00.1 View file →
@@ -2,11 +2,10 @@
2 2 /**
3 3 * Plugin Name: FlyWP
4 4 * Plugin URI: https://flywp.com
5 5 * Description: Helper plugin for FlyWP
6 - * Version: 1.5.0
6 + * Version: 0.1
7 7 * Author: FlyWP
8 - * Author URI: https://flywp.com/?utm_source=wporg&utm_medium=banner&utm_campaign=author-uri
9 8 * License: GPL2
10 9 */
11 10
12 11 // Exit if accessed directly.
@@ -15,116 +14,62 @@
15 14 }
16 15
17 16 require __DIR__ . '/vendor/autoload.php';
18 17
19 -use WeDevs\WpUtils\ContainerTrait;
20 -use WeDevs\WpUtils\HookTrait;
21 -use WeDevs\WpUtils\SingletonTrait;
22 -
23 -/**
24 - * Main FlyWP Class.
25 - *
26 - * @var admin FlyWP\Admin
27 - * @var rest FlyWP\Api
28 - * @var fastcgi FlyWP\Fastcgi_Cache
29 - * @var router FlyWP\Router
30 - *
31 - * @class FlyWP
32 - */
33 18 final class FlyWP_Plugin {
34 19
35 - use SingletonTrait;
36 - use ContainerTrait;
37 - use HookTrait;
38 -
39 20 /**
40 21 * Plugin version.
41 22 *
42 23 * @var string
43 24 */
44 - public $version = '1.5.0';
25 + private $version = '1.0.0';
45 26
46 27 /**
47 - * Plugin Constructor.
28 + * The single instance of the class.
48 29 *
49 - * @return void
30 + * @var FlyWP
50 31 */
51 - private function __construct() {
52 - $this->define_constants();
32 + private static $instance = null;
53 33
54 - $this->add_action( 'plugins_loaded', 'init_plugin' );
55 - register_activation_hook( __FILE__, [ $this, 'activate' ] );
56 - register_deactivation_hook( __FILE__, [ $this, 'deactivate' ] );
57 - }
58 -
59 34 /**
60 - * Define plugin constants.
35 + * Plugin Constructor.
61 36 *
62 37 * @return void
63 38 */
64 - private function define_constants() {
65 - define( 'FLYWP_VERSION', $this->version );
66 - define( 'FLYWP_PLUGIN_FILE', __FILE__ );
67 - define( 'FLYWP_PLUGIN_BASENAME', plugin_basename( __FILE__ ) );
68 - define( 'FLYWP_PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
69 - define( 'FLYWP_PLUGIN_URL', plugin_dir_url( __FILE__ ) );
39 + private function __construct() {
40 + $this->define_constants();
70 41
71 - if ( ! defined( 'FLYWP_API_KEY' ) ) {
72 - define( 'FLYWP_API_KEY', '' );
73 - }
42 + add_action( 'plugins_loaded', [ $this, 'init_plugin' ] );
74 43 }
75 44
76 45 /**
77 - * Plugin activation hook.
46 + * Main FlyWP Instance.
78 47 *
79 - * @return void
80 - */
81 - public function activate() {
82 - $router = new FlyWP\Router();
83 - $router->register_routes();
84 -
85 - flush_rewrite_rules( false );
86 - }
87 -
88 - /**
89 - * Plugin deactivation hook.
48 + * Ensures only one instance of FlyWP is loaded or can be loaded.
90 49 *
91 - * @return void
50 + * @return flyWP - Main instance
92 51 */
93 - public function deactivate() {
94 - $timestamp = wp_next_scheduled( FlyWP\Api\UpdatesData::CRON_HOOK );
95 - if ( $timestamp ) {
96 - wp_unschedule_event( $timestamp, FlyWP\Api\UpdatesData::CRON_HOOK );
52 + public static function instance() {
53 + if ( null === self::$instance ) {
54 + self::$instance = new self();
97 55 }
56 +
57 + return self::$instance;
98 58 }
99 59
100 - /**
101 - * Initialize plugin.
102 - *
103 - * @return void
104 - */
105 60 public function init_plugin() {
106 - if ( ! $this->has_key() ) {
107 - $this->add_action( 'admin_notices', 'admin_notice' );
61 + if ( ! $this->has_api_key() ) {
62 + add_action( 'admin_notices', [ $this, 'admin_notice' ] );
108 63
109 64 return;
110 65 }
111 66
112 67 if ( is_admin() ) {
113 - $this->admin = new FlyWP\Admin();
68 + new FlyWP\Admin();
114 69 } else {
115 - $this->frontend = new FlyWP\Frontend();
70 + new FlyWP\Frontend();
116 71 }
117 -
118 - $this->router = new FlyWP\Router();
119 - $this->rest = new FlyWP\Api();
120 - $this->fastcgi = new FlyWP\Fastcgi_Cache();
121 - $this->opcache = new FlyWP\Opcache();
122 - $this->flyapi = new FlyWP\FlyApi();
123 - $this->email = new FlyWP\Email();
124 - $this->optimize = new FlyWP\Optimizations();
125 - $this->litespeed = new FlyWP\Litespeed();
126 - $this->updates_data = new FlyWP\Api\UpdatesData();
127 72 }
128 73
129 74 /**
130 75 * Show admin notice if API key is not set.
@@ -137,13 +82,30 @@
137 82 echo '<div class="notice notice-error"><p>' . esc_html( $message ) . '</p></div>';
138 83 }
139 84
140 85 /**
86 + * Define plugin constants.
87 + *
88 + * @return void
89 + */
90 + private function define_constants() {
91 + define( 'FLYWP_VERSION', $this->version );
92 + define( 'FLYWP_PLUGIN_FILE', __FILE__ );
93 + define( 'FLYWP_PLUGIN_BASENAME', plugin_basename( __FILE__ ) );
94 + define( 'FLYWP_PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
95 + define( 'FLYWP_PLUGIN_URL', plugin_dir_url( __FILE__ ) );
96 +
97 + if ( ! defined( 'FLYWP_API_KEY' ) ) {
98 + define( 'FLYWP_API_KEY', '' );
99 + }
100 + }
101 +
102 + /**
141 103 * Check if API key is set.
142 104 *
143 105 * @return bool
144 106 */
145 - public function has_key() {
107 + public function has_api_key() {
146 108 return FLYWP_API_KEY !== '';
147 109 }
148 110
149 111 /**
@@ -150,9 +112,9 @@
150 112 * Get API key.
151 113 *
152 114 * @return string
153 115 */
154 - public function get_key() {
116 + public function get_api_key() {
155 117 return FLYWP_API_KEY;
156 118 }
157 119 }
158 120
@@ -158,9 +120,9 @@
158 120
159 121 /**
160 122 * Returns the main instance of FlyWP to prevent the need to use globals.
161 123 *
162 - * @return FlyWP_Plugin
124 + * @return FlyWP
163 125 */
164 126 function flywp() {
165 127 return FlyWP_Plugin::instance();
166 128 }