name = $name; } /** @throws InvalidDatabaseName */ public static function fromValue(mixed $name): self { return new self($name); } public static function tryFromValue(mixed $name): self|null { try { return new self($name); } catch (InvalidDatabaseName) { return null; } } /** @psalm-return non-empty-string */ public function getName(): string { return $this->name; } /** @psalm-return non-empty-string */ public function __toString(): string { return $this->name; } }