⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.19
Server IP:
178.33.27.10
Server:
Linux cpanel.dev-unit.com 3.10.0-1160.108.1.el7.x86_64 #1 SMP Thu Jan 25 16:17:31 UTC 2024 x86_64
Server Software:
Apache/2.4.57 (Unix) OpenSSL/1.0.2k-fips
PHP Version:
8.2.11
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
home
/
id
/
erp.dev-unit.com
/
vendor
/
spatie
/
url
/
src
/
View File Name :
SchemeValidator.php
<?php namespace Spatie\Url; use Spatie\Url\Exceptions\InvalidArgument; class SchemeValidator extends BaseValidator { public const VALID_SCHEMES = ['http', 'https', 'mailto', 'tel']; private string|null $scheme; public function __construct( private array|null $allowedSchemes = null ) { $this->scheme = null; $this->allowedSchemes = $allowedSchemes ?? self::VALID_SCHEMES; } public function validate(): void { // '' aka "no scheme" must always be valid $alwaysAllowedSchemes = ['']; if (! in_array($this->scheme, [...$this->allowedSchemes, ...$alwaysAllowedSchemes])) { throw InvalidArgument::invalidScheme($this->scheme, $this->allowedSchemes); } } public static function sanitizeScheme(string $scheme): string { // TODO: regex to allow correct format according to https://datatracker.ietf.org/doc/html/rfc3986#section-3.1 return strtolower($scheme); } public function getScheme(): string|null { return $this->scheme; } public function setScheme(string $scheme): void { $this->scheme = $scheme; } public function getAllowedSchemes(): array|null { return $this->allowedSchemes; } public function setAllowedSchemes(array $allowedSchemes): void { $this->allowedSchemes = array_map( fn ($scheme) => static::sanitizeScheme($scheme), $allowedSchemes ); } }