PluginProbe ʕ •ᴥ•ʔ
NitroPack – Performance, Page Speed & Cache Plugin for Core Web Vitals, CDN & Image Optimization / 1.16.1
NitroPack – Performance, Page Speed & Cache Plugin for Core Web Vitals, CDN & Image Optimization v1.16.1
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 / Pagely.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 2 years ago Pagely.php 2 years ago PagelyCachePurge.php 4 years ago Pantheon.php 2 years ago Pressable.php 2 years ago Raidboxes.php 2 years ago RocketNet.php 3 years ago Savvii.php 3 years ago SiteGround.php 2 years ago SpinupWp.php 2 years ago Vimexx.php 3 years ago WPEngine.php 2 years ago WPX.php 3 years ago WPmudev.php 2 years ago
Pagely.php
72 lines
1 <?php
2
3 namespace NitroPack\Integration\Hosting;
4
5 class Pagely extends Hosting {
6 const STAGE = "very_early";
7
8 public static function detect() {
9 return class_exists('\PagelyCachePurge') || isset($_SERVER["HTTP_X_PAGELY_SSL"]);
10 }
11
12 public function init($stage) {
13 if ($this->getHosting() == "pagely") {
14 switch ($stage) {
15 case "very_early":
16 add_action('nitropack_cacheable_cache_headers', [$this, 'addCacheControl']);
17 add_action('nitropack_cachehit_cache_headers', [$this, 'addCacheControl']);
18 add_filter('nitropack_can_serve_cache', [$this, 'canServeCache']);
19 \NitroPack\ModuleHandler::initSemAcquire();
20 return true;
21 case "early":
22 \NitroPack\ModuleHandler::initSemRelease();
23 add_action('nitropack_execute_purge_url', [$this, 'purgeUrl']);
24 add_action('nitropack_execute_purge_all', [$this, 'purgeAll']);
25 return true;
26 default:
27 return false;
28 }
29 }
30 }
31
32 public function purgeUrl($url) {
33 try {
34 $path = parse_url($url, PHP_URL_PATH);
35 if (class_exists("\PagelyCachePurge")) { // We need to have this check for clients that switch hosts
36 $pagely = new PagelyCachePurge();
37 $pagely->purgePath($path . "(.*)");
38 }
39 } catch (\Exception $e) {
40 // Pagely exception
41 }
42 }
43
44 public function purgeAll() {
45 try {
46 if (class_exists("\PagelyCachePurge")) { // We need to have this check for clients that switch hosts
47 $pagely = new PagelyCachePurge();
48 $pagely->purgeAll();
49 }
50 } catch (\Exception $e) {
51 // Pagely exception
52 }
53 }
54
55 public function addCacheControl() {
56 if ($this->isHealthcheckRequest()) {
57 nitropack_header("Cache-Control: no-cache");
58 nitropack_header("X-Nitro-Disabled: 1");
59 } else {
60 nitropack_header("Cache-Control: public, max-age=0, s-maxage=3600");
61 }
62 }
63
64 public function canServeCache() {
65 return !$this->isHealthcheckRequest();
66 }
67
68 public function isHealthcheckRequest() {
69 return !empty($_SERVER['REQUEST_URI']) && trim(strtolower($_SERVER['REQUEST_URI']), "/") == "pagely/status";
70 }
71 }
72