Phan\Language\FQSEN\FullyQualifiedClassElement::fromStringInContext PHP Method

fromStringInContext() public static method

public static fromStringInContext ( string $fqsen_string, Context $context ) : static
$fqsen_string string An FQSEN string like '\Namespace\Class::methodName'
$context Phan\Language\Context The context in which the FQSEN string was found
return static
    public static function fromStringInContext(string $fqsen_string, Context $context)
    {
        // Test to see if we have a class defined
        if (false === strpos($fqsen_string, '::')) {
            assert($context->isInClassScope(), "Cannot reference class element without class name when not in class scope.");
            $fully_qualified_class_name = $context->getClassFQSEN();
        } else {
            assert(false !== strpos($fqsen_string, '::'), "Fully qualified class element lacks '::' delimiter");
            list($class_name_string, $fqsen_string) = explode('::', $fqsen_string);
            $fully_qualified_class_name = FullyQualifiedClassName::fromStringInContext($class_name_string, $context);
        }
        // Split off the alternate ID
        $parts = explode(',', $fqsen_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);
    }