Laravel 4: Jak rozwiązano fasady?

Patrzę na to, co dzieje się na Laravel 4fasady pod maską.

Weźmy tę fasadę jako przykład:

File::get(someArgs);

Jeśli się nie mylę, wywołanie krok po kroku (nadmiernie uproszczone) byłoby:

//static method invocation which are all extended from Facade class
File::__callStatic(get, someArgs)
//returns an instance of FileSystem
File::resolveFacedeInstance('files') 
FileSystem->get(someArgs)

To, o czym myliłem się, znajduje się w komentarzu poniżej metodyPlik :: resolveFacadeInstance () poniżej:

protected static function resolveFacadeInstance($name)
{
    if (is_object($name)) return $name;

    if (isset(static::$resolvedInstance[$name]))
    {
        return static::$resolvedInstance[$name];
    }



    /**
    * The line that i'm confused about
    */

    return static::$resolvedInstance[$name] = static::$app[$name];
}

Moje pytania to:

Jak jestPlik :: $ app nawet zainicjowane lub przypisane wartości wewnątrz klasy elewacji

JeśliPlik :: get () to wywołana fasada

static :: $ app [$ name] rozwiąże to myślenie Application ['files'] lub Application-> pliki, które z kolei wywołują Application -> __ get ('files'), ponieważ nie mapliki nieruchomość wewnątrzPodanie klasa.

Jak powróci FileSystem Class, jeśli jest to tylko treść tej metody?

public function __get($key)
{
    return $this[$key];
}

questionAnswers(1)

yourAnswerToTheQuestion