Return the "real" class name if the given class name is a proxy
class name.

@param string $className

@return string
511190
public static function getUserClassName($className)
    {
        if (null === self::$inflector) {
            static::$inflector = new ProxyManagerClassNameInflector('');
        }

        return static::$inflector->getUserClassName($className);
    }
687502
public static function classname($qualifiedName)
    {
        if (false !== $pos = strrpos($qualifiedName, '.')) {
            return substr($qualifiedName, $pos + 1); // start just after '.'
        } elseif (false !== $pos = strrpos($qualifiedName, '\\')) {
            return substr($qualifiedName, $pos + 1);
        } else {
            return $qualifiedName;  // there is no '.' in the qualified name
        }

    }
302743
public function getAliasForClassname(Classname $class)
    {
        foreach ($this->classnames as $c) {
            if ($c['classname']->equals($class)) {
                return str_replace('\\', '_', ltrim($class->classname, '\\'));
            }
        }

        return str_replace('\\', '_', ltrim($class->classname, '\\'));
    }
1313858
public function getIdByClassName($className)
    {
        $classId = $this->getClassIdFromShopMap($className);

        if (empty($classId)) {
            $classId = $this->getClassIdFromModuleMap($className);
        }
        return $classId;
    }
1319500
public static function getShortClassname($classname)
    {
        if (is_array($classname)) {
            return  array_map(['BackBee\ClassContent\AbstractContent', 'getShortClassname'], $classname);
        }

        if (in_array($classname, ['scalar', 'array'])) {
            return $classname;
        }

        $isExcluded = self::isExcludedClassname($classname);

        try {
            if (!is_subclass_of($classname, 'BackBee\ClassContent\AbstractClassContent')) {
                throw new ClassNotFoundException();
            }
        } catch (ClassNotFoundException $ex) {
            return self::onUnknownClassname(
                sprintf('Given classname %s is not a subclass of AbstractClassContent.', $classname),
                $ex
            );
        }

        return ($isExcluded ? '!' : '').str_replace(self::CLASSCONTENT_BASE_NAMESPACE, '', $classname);
    }
856774
private function resolveTypeName($className)
    {
        if (strpos($className, ':') !== false || strpos($className, '\\') !== false) {
            return $this->getMetadataCollector()->getDocumentType($className);
        }

        return $className;
    }
1074512
public static function deNamespace($className)
        {
            $className = trim($className, '\\');

            if ($lastSeparator = strrpos($className, '\\')) {
                $className = substr($className, $lastSeparator + 1);
            }

            return $className;
        }
1137280
public function getClassAliasName($className)
    {
        /*
         * Sanitize input: class names in namespaces should not, but may include a leading backslash
         */
        $className = ltrim($className, '\\');
        $classAlias = array_search($className, $this->classMap);

        if ($classAlias === false) {
            $classAlias = null;
        }

        return $classAlias;
    }
419306
public function getProxyFilename($className)
    {
        $baseDirectory = $this->proxyDirectory;
        $suffix = str_replace('\\', '', $className);
        
        if ($this->proxyClassSuffix !== null) {
            $suffix .= $this->proxyClassSuffix;
        }
        
        return rtrim($baseDirectory, DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR . self::MARKER
            . $suffix . '.php';
    }
928307
protected final function fileName(string $className): string
    {
        $fileName = "";
        if (array_key_exists($className, $this->className)) {
            $fileName = $this->className[$className];
            $this->removeClass($className);
        }
        return $fileName;
    }
454775
public function getClassPropertyNames($className)
    {
        $className = $this->prepareClassReflectionForUsage($className);
        return isset($this->classReflectionData[$className][self::DATA_CLASS_PROPERTIES]) ? array_keys($this->classReflectionData[$className][self::DATA_CLASS_PROPERTIES]) : [];
    }
1266736
public static function classToIndex($className)
    {
        if (false === is_string($className)) {
            return '';
        }
        $modelClass = strtolower($className);
        return StringHelper::basename($modelClass);
    }
966052
public static function getFullClassname($classname)
    {
        if (is_array($classname)) {
            return  array_map(['BackBee\ClassContent\AbstractContent', 'getFullClassname'], $classname);
        }

        $isExcluded = self::isExcludedClassname($classname);

        try {
            class_exists($classname);
        } catch (ClassNotFoundException $ex) {
            return self::onUnknownClassname($classname.' is not a short classname of an AbstractClassContent instance.', $ex);
        }

        return ($isExcluded ? '!' : '').$classname;
    }
632050
protected final function fileName(string $className): string
    {
        $fileName = "";
        $prefix = $className;
        while (($lastPrPos = strrpos($prefix, "\\"))) {
            $prefix = substr($className, 0, $lastPrPos + 1);
            $relativeClass = substr($className, $lastPrPos + 1);
            if (array_key_exists($prefix, $this->prefix)
             && ($fileName = $this->find($prefix, $relativeClass))) {
                break;
            }
            $prefix = rtrim($prefix, "\\");
        }
        return $fileName;
    }
222509
public static function getOnlyClass($className)
    {
        // Try to find namespace separator
        if (($p = strrpos($className, self::NS_SEPARATOR)) !== false) {
            $className = substr($className, $p + 1);
        }

        return $className;
    }
675584
public static function getParent($className) {
		$reflection = ClassType::from($className);
		$parent = $reflection->getParentClass();
		return $parent ? $parent->getName() : $parent;
	}
1115699
public static function getStrippedClassName($classname)
    {
        // Find the position of the last occurrence of \\ in $classname with strrpos
        $pos = strrpos($classname, '\\');
        if ($pos) {
            return substr($classname, $pos + 1);
        }

        return $classname;
    }