/** * Created StdString instance * * @param mixed $value The string value * * @return StdString * * @throws DomainException When the value is not valid */ function stdString($value) : StdString { if (!Validate::isStringCastable($value)) { $message = sprintf('Invalid string value: %s', VarPrinter::toString($value)); throw new DomainException($message); } if ($value instanceof StdString) { return $value; } /** @var StdString $string */ $string = StdString::create((string) $value); return $string; }