slug = self::sanitizeSlug($slug); } public function setRequired():void { $this->required = true; } public function isRequired():bool { return $this->required; } public function setValidation(callable $validation):void { $this->validation = Closure::fromCallable($validation); } public function handleValidation(mixed $data):bool|null { if (is_callable($this->validation)) { return ($this->validation)($data); } return null; } public static function sanitizeSlug(string $slug):string { return str_replace('-','_', sanitize_title($slug)); } public function validate(mixed $value):bool { $result = $this->handleValidation($value); if (is_null($result) && !empty($this->type)) { error_log('Handling validation with the Meta Validator.php class'); Validator::validate($value, ['type' => $this->type]); } error_log('No validation set for '.$this->slug.' endpoint field'); return true; } }