PluginProbe ʕ •ᴥ•ʔ
NitroPack – Performance, Page Speed & Cache Plugin for Core Web Vitals, CDN & Image Optimization / 1.19.3
NitroPack – Performance, Page Speed & Cache Plugin for Core Web Vitals, CDN & Image Optimization v1.19.3
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 1 year ago Cloudways.php 1 year ago DreamHost.php 1 year ago Flywheel.php 1 year ago GoDaddyWPaaS.php 1 year ago GridPane.php 1 year ago Hosting.php 1 year ago Kinsta.php 1 year ago Pagely.php 1 year ago PagelyCachePurge.php 1 year ago Pantheon.php 1 year ago Pressable.php 1 year ago Raidboxes.php 1 year ago RocketNet.php 1 year ago Savvii.php 1 year ago SiteGround.php 3 months ago SpinupWp.php 1 year ago Vimexx.php 1 year ago WPEngine.php 1 year ago WPX.php 1 year ago WPmudev.php 1 year 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