Los facades en Laravel proporcionan una interfaz “Estática” a las clases que están disponibles a través del contenedor de servicios de la aplicación, de esta manera podemos llamar a métodos sin tener que preocuparnos por instanciar la clase, pasar dependencias, etc. El único “problema” hasta la versión 5.3 de Laravel, era tener que crear nosotros mismos una clase para representar el facade y pasarle la referencia al contenedor de inyección de dependencias, sin embargo a partir de Laravel 5.4 este proceso es automático con los nuevas facades en tiempo real o facades automáticos. En esta lección aprenderás cómo usarlos pero también verás un repaso sobre la creación de facades manuales y cómo registrar clases en el contenedor del framework.

Suscríbete a nuestro boletín

Te enviaremos publicaciones con consejos útiles y múltiples recursos para que sigas aprendiendo.

Notas

En Laravel 5.3 y versiones anteriores crear un facade de una clase implicaba:

  • Tener una clase con la que queremos trabajar para crear un componente.
  • Usar un service provider para registrar dicha clase al contenedor de servicios de la aplicación.
  • Crear un facade que se asocie a la llave
  • Registrar su alias en config/app.php (opcional)

Puedes también consultar el tutorial Facades personalizados en Laravel 5.1

Sin embargo, a partir de Laravel 5.4 solo necesitamos tener la clase como por ejemplo:

y luego en cualquier controlador o ruta llamar a la clase darle el prefijo Facades\ al namespace de la clase, por ejemplo Facades\App\Alert:

Laravel entonces va a generar una clase facade automáticamente en el directorio /storage/framework/cache y la va a usar y a reusar cada vez que haga falta.

Si la clase que creas tiene dependencias, Laravel también se encargará de instanciarlas e inyectarlas por ti. De esta manera podrás dedicar más tiempo a diseñar clases con la lógica de negocio de tu app y menos tiempo pensando en cómo instanciarlas / usarlas.

Material relacionado

Únete a la discusión

Regístrate en Styde y obtén una invitación a nuestro Slack.

Lección anterior Componentes y slots en Laravel 5.4 Lección siguiente Generar controladores asociados a un modelo en Laravel 5.4