public static function make(string $namespace, string $name, int $alternate_id = 0)
{
// Transfer any relative namespace stuff from the
// name to the namespace.
$name_parts = explode('\\', $name);
$name = array_pop($name_parts);
$namespace = implode('\\', array_merge([$namespace], $name_parts));
$namespace = self::cleanNamespace($namespace);
$key = strtolower(implode('|', [get_called_class(), static::toString($namespace, $name, $alternate_id)]));
$fqsen = self::memoizeStatic($key, function () use($namespace, $name, $alternate_id) {
return new static($namespace, $name, $alternate_id);
});
return $fqsen;
}