Newscoop\NewscoopBundle\DependencyInjection\NewscoopNewscoopExtension::truepath PHP Метод

truepath() публичный Метод

This function is to replace PHP's extremely buggy realpath().
public truepath ( $path ) : string
Результат string The resolved path, it might not exist.
    public function truepath($path)
    {
        $path = str_replace('%application_path%', APPLICATION_PATH, $path);
        // whether $path is unix or not
        $unipath = strlen($path) == 0 || $path[0] != '/';
        // attempts to detect if path is relative in which case, add cwd
        if (strpos($path, ':') === false && $unipath) {
            $path = getcwd() . DIRECTORY_SEPARATOR . $path;
        }
        // resolve path parts (single dot, double dot and double delimiters)
        $path = str_replace(array('/', '\\'), DIRECTORY_SEPARATOR, $path);
        $parts = array_filter(explode(DIRECTORY_SEPARATOR, $path), 'strlen');
        $absolutes = array();
        foreach ($parts as $part) {
            if ('.' == $part) {
                continue;
            }
            if ('..' == $part) {
                array_pop($absolutes);
            } else {
                $absolutes[] = $part;
            }
        }
        $path = implode(DIRECTORY_SEPARATOR, $absolutes);
        // put initial separator that could have been lost
        $path = !$unipath ? '/' . $path : $path;
        return $path;
    }