PluginProbe ʕ •ᴥ•ʔ
NitroPack – Performance, Page Speed & Cache Plugin for Core Web Vitals, CDN & Image Optimization / 1.5.19
NitroPack – Performance, Page Speed & Cache Plugin for Core Web Vitals, CDN & Image Optimization v1.5.19
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 / WPX.php
nitropack / classes / Integration / Hosting Last commit date
Closte.php 4 years ago Cloudways.php 4 years ago DreamHost.php 3 years ago Flywheel.php 4 years ago GoDaddyWPaaS.php 4 years ago GridPane.php 4 years ago Hosting.php 4 years ago Kinsta.php 3 years ago Pagely.php 4 years ago PagelyCachePurge.php 4 years ago Pressable.php 3 years ago RocketNet.php 3 years ago Savvii.php 3 years ago SiteGround.php 3 years ago Vimexx.php 3 years ago WPEngine.php 4 years ago WPX.php 3 years ago
WPX.php
72 lines
1 <?php
2
3 namespace NitroPack\Integration\Hosting;
4
5 class WPX extends Hosting {
6 const STAGE = "very_early";
7
8 public static function detect() {
9 $hostname = gethostname();
10 return $hostname && (preg_match("/wpx\.net$/", $hostname) || preg_match("/wpxhosting\.com$/", $hostname));
11 }
12
13 public static function isCDNEnabled() {
14 $siteConfig = get_nitropack()->getSiteConfig();
15 if ($siteConfig) {
16 $urlObj = new \NitroPack\Url\Url($siteConfig["home_url"]);
17 $ip = gethostbyname($urlObj->getHost());
18
19 $wpxMin = ip2long("194.1.147.1");
20 $wpxMax = ip2long("194.1.147.254");
21 $clientIp = ip2long($ip);
22
23 return $clientIp >= $wpxMin && $clientIp <= $wpxMax;
24 }
25
26 return false;
27 }
28
29 public function init($stage) {
30 if ($this->getHosting() == "wpx" && self::isCDNEnabled()) {
31 add_action('nitropack_execute_purge_url', [$this, 'purgeUrl']);
32 add_action('nitropack_execute_purge_all', [$this, 'purgeAll']);
33 add_action('nitropack_cacheable_cache_headers', [$this, 'setCacheControl']);
34 add_action('nitropack_cachehit_cache_headers', [$this, 'setCacheControl']);
35 }
36 }
37
38 public function purgeUrl($url) {
39 try {
40 $siteConfig = get_nitropack()->getSiteConfig();
41 if ($siteConfig) {
42 $urlObj = new \NitroPack\Url\Url($siteConfig["home_url"]);
43 $purgeUrl = "http://" . $urlObj->getHost() . ":6081" . $urlObj->getPath() . ".*";
44 $purger = new \NitroPack\SDK\Integrations\ReverseProxy(array("127.0.0.1"), "PURGE");
45 $purger->purge($purgeUrl);
46 }
47 } catch (\Exception $e) {
48 // Exception
49 }
50 }
51
52 public function purgeAll() {
53 try {
54 $siteConfig = get_nitropack()->getSiteConfig();
55 if ($siteConfig) {
56 $urlObj = new \NitroPack\Url\Url($siteConfig["home_url"]);
57 $purgeUrl = "http://" . $urlObj->getHost() . ":6081/.*";
58 $purger = new \NitroPack\SDK\Integrations\ReverseProxy(array("127.0.0.1"), "PURGE");
59 $purger->purge($purgeUrl);
60 }
61 } catch (\Exception $e) {
62 // Exception
63 }
64 }
65
66 public function setCacheControl() {
67 nitropack_header("Cache-Control: public, max-age=0, s-maxage=3600");
68 nitropack_header("CDN-Cache-Control: public, max-age=3600");
69 }
70 }
71
72