yii\BaseYii::setAlias PHP Method

setAlias() public static method

A path alias is a short name representing a long path (a file path, a URL, etc.) For example, we use '@yii' as the alias of the path to the Yii framework directory. A path alias must start with the character '@' so that it can be easily differentiated from non-alias paths. Note that this method does not check if the given path exists or not. All it does is to associate the alias with the path. Any trailing '/' and '\' characters in the given path will be trimmed.
See also: getAlias()
public static setAlias ( string $alias, string $path )
$alias string the alias name (e.g. "@yii"). It must start with a '@' character. It may contain the forward slash '/' which serves as boundary character when performing alias translation by [[getAlias()]].
$path string the path corresponding to the alias. If this is null, the alias will be removed. Trailing '/' and '\' characters will be trimmed. This can be - a directory or a file path (e.g. `/tmp`, `/tmp/main.txt`) - a URL (e.g. `http://www.yiiframework.com`) - a path alias (e.g. `@yii/base`). In this case, the path alias will be converted into the actual path first by calling [[getAlias()]].
    public static function setAlias($alias, $path)
    {
        if (strncmp($alias, '@', 1)) {
            $alias = '@' . $alias;
        }
        $pos = strpos($alias, '/');
        $root = $pos === false ? $alias : substr($alias, 0, $pos);
        if ($path !== null) {
            $path = strncmp($path, '@', 1) ? rtrim($path, '\\/') : static::getAlias($path);
            if (!isset(static::$aliases[$root])) {
                if ($pos === false) {
                    static::$aliases[$root] = $path;
                } else {
                    static::$aliases[$root] = [$alias => $path];
                }
            } elseif (is_string(static::$aliases[$root])) {
                if ($pos === false) {
                    static::$aliases[$root] = $path;
                } else {
                    static::$aliases[$root] = [$alias => $path, $root => static::$aliases[$root]];
                }
            } else {
                static::$aliases[$root][$alias] = $path;
                krsort(static::$aliases[$root]);
            }
        } elseif (isset(static::$aliases[$root])) {
            if (is_array(static::$aliases[$root])) {
                unset(static::$aliases[$root][$alias]);
            } elseif ($pos === false) {
                unset(static::$aliases[$root]);
            }
        }
    }