whitelist = $whitelist; } /** * Get Description * * Returns validator description * * @return string */ public function getDescription() { return 'URL host must be one of: ' . \implode(', ', $this->whitelist); } /** * Is valid * * Validation will pass when $value starts with one of the given hosts * * @param mixed $value * @return bool */ public function isValid($value) { $urlValidator = new URL(); if (!$urlValidator->isValid($value)) { return false; } if (\in_array(\parse_url($value, PHP_URL_HOST), $this->whitelist)) { return true; } return false; } /** * Is array * * Function will return true if object is array. * * @return bool */ public function isArray(): bool { return false; } /** * Get Type * * Returns validator type. * * @return string */ public function getType(): string { return self::TYPE_STRING; } }