errors = new Errors(); $this->validated = new Validated(); $this->validateTask($request['task'], 2, 256); $this->validateTag($request['tag'], 2, 16); } private function validateTask(string $task, int $minLength, int $maxLength): void { $task = trim($task); if (strlen($task) < $minLength || strlen($task) > $maxLength) { $this->errors->add('task', "Must be between $minLength and $maxLength in characters in length"); } if (!$this->errors->has('tite')) { $this->validated->task = $task; } } private function validateTag(string $tag, int $minLength, int $maxLength): void { $tag = trim($tag); if ($tag === '') { return; } if (strlen($tag) < $minLength || strlen($tag) > $maxLength) { $this->errors->add('tag', "Must be between $minLength and $maxLength in characters in length"); } if (preg_match('/\W/', $tag) === 1) { $this->errors->add('tag', 'May only contain word characters'); } if (!$this->errors->has('tag')) { $this->validated->tag = strtolower($tag); } } }