src/Context.php
public function fullyQualifiedName($class)
    {
        if ($this->namespace) {
            $namespace = str_replace('\\\\', '\\', '\\' . $this->namespace . '\\');
        } else {
            $namespace = '\\'; // global namespace
        }

        if ($this->class === null) {
            $this->class = '';
        }

        if ($class === null) {
            return '';
        }

        if (strcasecmp($class, $this->class) === 0) {
            return $namespace . $this->class;
        }
        $pos = strpos($class, '\\');
        if ($pos !== false) {
            if ($pos === 0) {
                // Fully qualified name (\Foo\Bar)
                return $class;
            }
            // Qualified name (Foo\Bar)
            if ($this->uses) {
                foreach ($this->uses as $alias => $aliasedNamespace) {
                    $alias .= '\\';
                    if (strcasecmp(substr($class, 0, strlen($alias)), $alias) === 0) {
                        // Aliased namespace (use \Long\Namespace as Foo)
                        return '\\' . $aliasedNamespace . substr($class, strlen($alias) - 1);
                    }
                }
            }
        } elseif ($this->uses) {
            // Unqualified name (Foo)
            foreach ($this->uses as $alias => $aliasedNamespace) {
                if (strcasecmp($alias, $class) === 0) {
                    return '\\' . $aliasedNamespace;
                }
            }
        }

        return $namespace . $class;
    }
public function fullyQualifiedName($class)
    {
        if ($this->namespace) {
            $namespace = str_replace('\\\\', '\\', '\\' . $this->namespace . '\\');
        } else {
            $namespace = '\\'; // global namespace
        }

        if ($this->class === null) {
            $this->class = '';
        }

        if ($class === null) {
            return '';
        }

        if (strcasecmp($class, $this->class) === 0) {
            return $namespace . $this->class;
        }
        $pos = strpos($class, '\\');
        if ($pos !== false) {
            if ($pos === 0) {
                // Fully qualified name (\Foo\Bar)
                return $class;
            }
            // Qualified name (Foo\Bar)
            if ($this->uses) {
                foreach ($this->uses as $alias => $aliasedNamespace) {
                    $alias .= '\\';
                    if (strcasecmp(substr($class, 0, strlen($alias)), $alias) === 0) {
                        // Aliased namespace (use \Long\Namespace as Foo)
                        return '\\' . $aliasedNamespace . substr($class, strlen($alias) - 1);
                    }
                }
            }
        } elseif ($this->uses) {
            // Unqualified name (Foo)
            foreach ($this->uses as $alias => $aliasedNamespace) {
                if (strcasecmp($alias, $class) === 0) {
                    return '\\' . $aliasedNamespace;
                }
            }
        }

        return $namespace . $class;
    }
public function fullyQualifiedName ( $ class ) { if ( $ this -> namespace ) { $ namespace = str_replace ( '\\\\' , '\\' , '\\' . $ this -> namespace . '\\' ) ; } else { $ namespace = '\\' ; // global namespace } if ( $ this -> class === null ) { $ this -> class = '' ; } if ( $ class === null ) { return '' ; } if ( strcasecmp ( $ class , $ this -> class ) === 0 ) { return $ namespace . $ this -> class ; } $ pos = strpos ( $ class , '\\' ) ; if ( $ pos !== false ) { if ( $ pos === 0 ) { // Fully qualified name (\Foo\Bar) return $ class ; } // Qualified name (Foo\Bar) if ( $ this -> uses ) { foreach ( $ this -> uses as $ alias => $ aliasedNamespace ) { $ alias .= '\\' ; if ( strcasecmp ( substr ( $ class , 0 , strlen ( $ alias ) ) , $ alias ) === 0 ) { // Aliased namespace (use \Long\Namespace as Foo) return '\\' . $ aliasedNamespace . substr ( $ class , strlen ( $ alias ) - 1 ) ; } } } } elseif ( $ this -> uses ) { // Unqualified name (Foo) foreach ( $ this -> uses as $ alias => $ aliasedNamespace ) { if ( strcasecmp ( $ alias , $ class ) === 0 ) { return '\\' . $ aliasedNamespace ; } } } return $ namespace . $ class ; }
Resolve the fully qualified name.

@param string $class The class name

@return string
Resolve the fully qualified name .