$data */ public static function fromRequest(array $data): self { return new self( name: trim((string) ($data['name'] ?? '')), version: trim((string) ($data['version'] ?? '1.0')), content: trim((string) ($data['content'] ?? '')), isActive: isset($data['is_active']), ); } /** * @return array */ public function validate(): array { $errors = []; if ($this->name === '') { $errors[] = 'Name ist erforderlich.'; } if (mb_strlen($this->name) > 100) { $errors[] = 'Name darf maximal 100 Zeichen lang sein.'; } if ($this->content === '') { $errors[] = 'Inhalt ist erforderlich.'; } if ($this->version === '') { $errors[] = 'Version ist erforderlich.'; } return $errors; } public function isValid(): bool { return $this->validate() === []; } }