Prado\PradoBase::using PHP Метод

using() публичный статический Метод

A namespace ending with an asterisk '*' refers to a directory, otherwise it represents a PHP file. If the namespace corresponds to a directory, the directory will be appended to the include path. If the namespace corresponds to a file, it will be included (include_once).
public static using ( $namespace, $checkClassExistence = true )
    public static function using($namespace, $checkClassExistence = true)
    {
        $namespace = static::prado3NamespaceToPhpNamespace($namespace);
        if (isset(self::$_usings[$namespace]) || class_exists($namespace, false)) {
            return;
        }
        if (array_key_exists($namespace, self::$classMap)) {
            // fast autoload a Prado3 class name
            $phpNamespace = self::$classMap[$namespace];
            if (class_exists($phpNamespace, true) || interface_exists($phpNamespace, true)) {
                if (!class_exists($namespace) && !interface_exists($namespace)) {
                    class_alias($phpNamespace, $namespace, true);
                }
                return;
            }
        } elseif (($pos = strrpos($namespace, '\\')) === false) {
            // trying to autoload an old class name
            foreach (self::$_usings as $k => $v) {
                $path = $v . DIRECTORY_SEPARATOR . $namespace . self::CLASS_FILE_EXT;
                if (file_exists($path)) {
                    $phpNamespace = '\\' . $k . '\\' . $namespace;
                    if (class_exists($phpNamespace, true) || interface_exists($phpNamespace, true)) {
                        if (!class_exists($namespace) && !interface_exists($namespace)) {
                            class_alias($phpNamespace, $namespace, true);
                        }
                        return;
                    }
                }
            }
            if ($checkClassExistence && !class_exists($namespace, false) && !interface_exists($namespace, false)) {
                throw new TInvalidOperationException('prado_component_unknown', $namespace, '');
            }
        } elseif (($path = self::getPathOfNamespace($namespace, self::CLASS_FILE_EXT)) !== null) {
            $className = substr($namespace, $pos + 1);
            if ($className === '*') {
                self::$_usings[substr($namespace, 0, $pos)] = $path;
            } else {
                //self::$_usings[$namespace]=$path;
                if (!$checkClassExistence || !class_exists($className, false) && !interface_exists($className, false)) {
                    try {
                        include_once $path;
                        if (class_exists($namespace, false) || interface_exists($namespace, false)) {
                            class_alias($namespace, $className, true);
                        }
                    } catch (\Exception $e) {
                        if ($checkClassExistence && !class_exists($className, false)) {
                            throw new TInvalidOperationException('prado_component_unknown', $className, $e->getMessage());
                        } else {
                            throw $e;
                        }
                    }
                }
            }
        }
    }