public static function fromFullyQualifiedString(string $fully_qualified_string)
{
assert(false !== strpos($fully_qualified_string, '::'), "Fully qualified class element lacks '::' delimiter");
list($fully_qualified_class_name_string, $name_string) = explode('::', $fully_qualified_string);
$fully_qualified_class_name = FullyQualifiedClassName::fromFullyQualifiedString($fully_qualified_class_name_string);
// Make sure that we're actually getting a class
// name reference back
assert($fully_qualified_class_name instanceof FullyQualifiedClassName, "FQSEN must be an instanceof FullyQualifiedClassName");
// Split off the alternate ID
$parts = explode(',', $name_string);
$name = $parts[0];
$alternate_id = (int) ($parts[1] ?? 0);
assert(is_int($alternate_id), "Alternate must be an integer");
return static::make($fully_qualified_class_name, $name, $alternate_id);
}