Laravel 4: ¿Cómo se resuelven las fachadas?
Tengo una especie de mirar lo que está pasando Laravel 4fachadas bajo el capó.
Tomemos esta Fachada como ejemplo:
File::get(someArgs);
Si no me equivoco, la invocación paso a paso (simplificada) sería:
//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)
En lo que estoy confundido está en la línea comentada a continuación del métodoArchivo :: resolverFacadeInstance () abajo:
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];
}
Mis preguntas son:
Como esArchivo :: $ app incluso inicializado o asignado un valor dentro de la clase de fachadaSiArchivo :: get () es la fachada invocada
static :: $ app [$ nombre] se resolvería según creo que Application ['files'] o Application-> files que a su vez llama a Application -> __ get ('files') ya que no hayarchivos propiedad dentroSolicitud clase.
¿Cómo se devolvería FileSystem Class si esto es solo el contenido de este método?
public function __get($key)
{
return $this[$key];
}