File manager - Edit - /var/www/payraty/helpdesk/vendor/itsgoingd/clockwork/Clockwork/Request/ShouldCollect.php
Back
<?php namespace Clockwork\Request; // Filter incoming requests before collecting data class ShouldCollect { // Enable on-demand mode, boolean or the secret value protected $onDemand = false; // Enable sampling, chance to be sampled (eg. 100 to collect 1 in 100 requests) protected $sample = false; // List of URIs that should not be collected, can contain regexes protected $except = []; // List of URIs that should only be collected, can contain regexes (only used if non-empty) protected $only = []; // Disable collection of OPTIONS method requests (most commonly used for CORS pre-flight requests) protected $exceptPreflight = false; // Custom filter callback protected $callback; // Append one or more except URIs public function except($uris) { $this->except = array_merge($this->except, is_array($uris) ? $uris : [ $uris ]); return $this; } // Append one or more only URIs public function only($uris) { $this->only = array_merge($this->only, is_array($uris) ? $uris : [ $uris ]); return $this; } // Merge multiple settings from array public function merge(array $data = []) { foreach ($data as $key => $val) $this->$key = $val; } // Apply the filter to an incoming request public function filter(IncomingRequest $request) { return $this->passOnDemand($request) && $this->passSampling() && $this->passExcept($request) && $this->passOnly($request) && $this->passExceptPreflight($request) && $this->passCallback($request); } protected function passOnDemand(IncomingRequest $request) { if (! $this->onDemand) return true; if ($this->onDemand !== true) { $input = isset($request->input['clockwork-profile']) ? $request->input['clockwork-profile'] : ''; $cookie = isset($request->cookies['clockwork-profile']) ? $request->cookies['clockwork-profile'] : ''; return hash_equals($this->onDemand, $input) || hash_equals($this->onDemand, $cookie); } return isset($request->input['clockwork-profile']) || isset($request->cookies['clockwork-profile']); } protected function passSampling() { if (! $this->sample) return true; return mt_rand(0, $this->sample) == $this->sample; } protected function passExcept(IncomingRequest $request) { if (! count($this->except)) return true; foreach ($this->except as $pattern) { if (preg_match('#' . str_replace('#', '\#', $pattern) . '#', $request->uri)) return false; } return true; } protected function passOnly(IncomingRequest $request) { if (! count($this->only)) return true; foreach ($this->only as $pattern) { if (preg_match('#' . str_replace('#', '\#', $pattern) . '#', $request->uri)) return true; } return false; } protected function passExceptPreflight(IncomingRequest $request) { if (! $this->exceptPreflight) return true; return strtoupper($request->method) != 'OPTIONS'; } protected function passCallback(IncomingRequest $request) { if (! $this->callback) return true; return call_user_func($this->callback, $request); } public function __call($method, $parameters) { if (! count($parameters)) return $this->$method; $this->$method = count($parameters) ? $parameters[0] : true; return $this; } }
| ver. 1.4 |
Github
|
.
| PHP 8.3.30 | Generation time: 0 |
proxy
|
phpinfo
|
Settings