%PDF- %PDF-
Direktori : /var/www/renta.eco-n-tech.co.uk/wp-content/plugins/nitropack/classes/Integration/Hosting/ |
Current File : /var/www/renta.eco-n-tech.co.uk/wp-content/plugins/nitropack/classes/Integration/Hosting/WPX.php |
<?php namespace NitroPack\Integration\Hosting; class WPX extends Hosting { const STAGE = "very_early"; public static function detect() { $hostname = gethostname(); return $hostname && (preg_match("/wpx\.net$/", $hostname) || preg_match("/wpxhosting\.com$/", $hostname)); } public static function isCDNEnabled() { $siteConfig = get_nitropack()->getSiteConfig(); if ($siteConfig) { $urlObj = new \NitroPack\Url\Url($siteConfig["home_url"]); $ip = gethostbyname($urlObj->getHost()); $wpxMin = ip2long("194.1.147.1"); $wpxMax = ip2long("194.1.147.254"); $clientIp = ip2long($ip); return $clientIp >= $wpxMin && $clientIp <= $wpxMax; } return false; } public function init($stage) { if ($this->getHosting() == "wpx" && self::isCDNEnabled()) { add_action('nitropack_execute_purge_url', [$this, 'purgeUrl']); add_action('nitropack_execute_purge_all', [$this, 'purgeAll']); add_action('nitropack_cacheable_cache_headers', [$this, 'setCacheControl']); add_action('nitropack_cachehit_cache_headers', [$this, 'setCacheControl']); } } public function purgeUrl($url) { try { $siteConfig = get_nitropack()->getSiteConfig(); if ($siteConfig) { $urlObj = new \NitroPack\Url\Url($siteConfig["home_url"]); $purgeUrl = "http://" . $urlObj->getHost() . ":6081" . $urlObj->getPath() . ".*"; $purger = new \NitroPack\SDK\Integrations\ReverseProxy(array("127.0.0.1"), "PURGE"); $purger->purge($purgeUrl); } } catch (\Exception $e) { // Exception } } public function purgeAll() { try { $siteConfig = get_nitropack()->getSiteConfig(); if ($siteConfig) { $urlObj = new \NitroPack\Url\Url($siteConfig["home_url"]); $purgeUrl = "http://" . $urlObj->getHost() . ":6081/.*"; $purger = new \NitroPack\SDK\Integrations\ReverseProxy(array("127.0.0.1"), "PURGE"); $purger->purge($purgeUrl); } } catch (\Exception $e) { // Exception } } public function setCacheControl() { nitropack_header("Cache-Control: public, max-age=0, s-maxage=3600"); nitropack_header("CDN-Cache-Control: public, max-age=3600"); } }