HEX
Server: LiteSpeed
System: Linux cde2.duelhost.dk 4.18.0-553.34.1.lve.el8.x86_64 #1 SMP Thu Jan 9 16:30:32 UTC 2025 x86_64
User: dtptviut (1121)
PHP: 8.0.30
Disabled: exec,system,passthru,shell_exec,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: /home/dtptviut/public_html/wp-content/plugins/nitropack/classes/Integration/Hosting/Pagely.php
<?php

namespace NitroPack\Integration\Hosting;

class Pagely extends Hosting {
    const STAGE = "very_early";

    public static function detect() {
        return class_exists('\PagelyCachePurge') || isset($_SERVER["HTTP_X_PAGELY_SSL"]);
    }

    public function init($stage) {
        if ($this->getHosting() == "pagely") {
            switch ($stage) {
            case "very_early":
                add_action('nitropack_cacheable_cache_headers', [$this, 'addCacheControl']);
                add_action('nitropack_cachehit_cache_headers', [$this, 'addCacheControl']);
                add_filter('nitropack_can_serve_cache', [$this, 'canServeCache']);
                \NitroPack\ModuleHandler::initSemAcquire();
                return true;
            case "early":
                \NitroPack\ModuleHandler::initSemRelease();
                add_action('nitropack_execute_purge_url', [$this, 'purgeUrl']);
                add_action('nitropack_execute_purge_all', [$this, 'purgeAll']);
                return true;
            default:
                return false;
            }
        }
    }

    public function purgeUrl($url) {
        try {
            $path = parse_url($url, PHP_URL_PATH);
            if (class_exists("\PagelyCachePurge")) { // We need to have this check for clients that switch hosts
                $pagely = new PagelyCachePurge();
                $pagely->purgePath($path . "(.*)");
            }
        } catch (\Exception $e) {
            // Pagely exception
        }
    }

    public function purgeAll() {
        try {
            if (class_exists("\PagelyCachePurge")) { // We need to have this check for clients that switch hosts
                $pagely = new PagelyCachePurge();
                $pagely->purgeAll();
            }
        } catch (\Exception $e) {
            // Pagely exception
        }
    }

    public function addCacheControl() {
        if ($this->isHealthcheckRequest()) {
            nitropack_header("Cache-Control: no-cache");
            nitropack_header("X-Nitro-Disabled: 1");
        } else {
            nitropack_header("Cache-Control: public, max-age=0, s-maxage=3600");
        }
    }

    public function canServeCache() {
        return !$this->isHealthcheckRequest();
    }

    public function isHealthcheckRequest() {
        return !empty($_SERVER['REQUEST_URI']) && trim(strtolower($_SERVER['REQUEST_URI']), "/") == "pagely/status";
    }
}