PluginProbe ʕ •ᴥ•ʔ
NitroPack – Performance, Page Speed & Cache Plugin for Core Web Vitals, CDN & Image Optimization / 1.5.7
NitroPack – Performance, Page Speed & Cache Plugin for Core Web Vitals, CDN & Image Optimization v1.5.7
1.19.8 1.19.7 1.19.6 1.19.5 trunk 1.10.0 1.10.1 1.10.2 1.10.3 1.10.4 1.11.0 1.12.0 1.13.0 1.14.0 1.15.0 1.15.1 1.15.2 1.15.3 1.16.0 1.16.1 1.16.2 1.16.3 1.16.4 1.16.5 1.16.6 1.16.7 1.16.8 1.17.0 1.17.6 1.17.7 1.17.8 1.17.9 1.18.0 1.18.1 1.18.2 1.18.3 1.18.4 1.18.5 1.18.6 1.18.7 1.18.8 1.18.9 1.19.0 1.19.1 1.19.2 1.19.3 1.19.4 1.3.19 1.3.20 1.4.0 1.4.1 1.5.0 1.5.1 1.5.10 1.5.11 1.5.12 1.5.13 1.5.14 1.5.15 1.5.16 1.5.17 1.5.18 1.5.19 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.5.9 1.6.0 1.6.1 1.7.0 1.7.1 1.8.0 1.8.1 1.8.3 1.9.0 1.9.1 1.9.2
nitropack / classes / Integration / Hosting / WPEngine.php
nitropack / classes / Integration / Hosting Last commit date
Closte.php 4 years ago Cloudways.php 4 years ago Flywheel.php 4 years ago GoDaddyWPaaS.php 4 years ago GridPane.php 4 years ago Hosting.php 4 years ago Kinsta.php 4 years ago Pagely.php 4 years ago PagelyCachePurge.php 4 years ago SiteGround.php 4 years ago Vimexx.php 4 years ago WPEngine.php 4 years ago WPX.php 4 years ago
WPEngine.php
66 lines
1 <?php
2
3 namespace NitroPack\Integration\Hosting;
4
5 class WPEngine extends Hosting {
6 const STAGE = "very_early";
7
8 private $urlPurges = [];
9 private $fullPurge = false;
10 private $readyToPurge = false;
11
12 public static function detect() {
13 return !!getenv('IS_WPE');
14 }
15
16 public function init($stage) {
17 if (self::detect()) {
18 switch ($stage) {
19 case "very_early":
20 define("NITROPACK_USE_MICROTIMEOUT", 20000);
21 \NitroPack\Integration::initSemAcquire();
22 return true;
23 case "early":
24 \NitroPack\Integration::initSemRelease();
25 add_action('nitropack_execute_purge_url', [$this, 'purgeUrl']);
26 add_action('nitropack_execute_purge_all', [$this, 'purgeAll']);
27 break;
28 }
29 }
30 }
31
32 public function purgeUrl($url) {
33 try {
34 $handler = function($paths) use($url) {
35 $wpe_path = parse_url($url, PHP_URL_PATH);
36 $wpe_query = parse_url($url, PHP_URL_QUERY);
37 $varnish_path = $wpe_path;
38 if (!empty($wpe_query)) {
39 $varnish_path .= '?' . $wpe_query;
40 }
41 if ($url && count($paths) == 1 && $paths[0] == ".*") {
42 return array($varnish_path);
43 }
44 return $paths;
45 };
46 add_filter( 'wpe_purge_varnish_cache_paths', $handler );
47 if (class_exists("\WpeCommon")) { // We need to have this check for clients that switch hosts
48 \WpeCommon::purge_varnish_cache();
49 }
50 remove_filter( 'wpe_purge_varnish_cache_paths', $handler );
51 } catch (\Exception $e) {
52 // WPE exception
53 }
54 }
55
56 public function purgeAll() {
57 try {
58 if (class_exists("\WpeCommon")) { // We need to have this check for clients that switch hosts
59 \WpeCommon::purge_varnish_cache();
60 }
61 } catch (\Exception $e) {
62 // WPE exception
63 }
64 }
65 }
66