Laravel - Fachadas

Las fachadas proporcionan un staticinterfaz a las clases que están disponibles en el contenedor de servicios de la aplicación. Laravelfacades sirve como static proxies a las clases subyacentes en el contenedor de servicios, proporcionando el beneficio de una sintaxis concisa y expresiva al tiempo que mantiene más capacidad de prueba y flexibilidad que los métodos estáticos tradicionales.

Cómo crear una fachada

Los siguientes son los pasos para crear una fachada en Laravel:

  • Step 1 - Crear archivo de clase PHP.

  • Step 2 - Vincular esa clase al proveedor de servicios.

  • Step 3 - Registrar ese ServiceProvider para

    Config \ app.php como proveedores.

  • Step 4 - Crear clase a la que se extiende esta clase

    Iluminar \ Soporte \ Fachadas \ Fachada.

  • Step 5 - Registre el punto 4 en Config \ app.php como alias.

Referencia de clase de fachada

Laravel se envía con muchas fachadas. La siguiente tabla muestra las referencias de clase de Facade integradas:

Fachada Clase Encuadernación de contenedores de servicio
Aplicación Iluminar \ Fundación \ Aplicación aplicación
Artesano Iluminar \ Contratos \ Consola \ Kernel artesano
Auth Illuminate \ Auth \ AuthManager auth
Auth (instancia) Iluminar \ Auth \ Guard
Espada Iluminar \ Ver \ Compiladores \ BladeCompiler blade.compiler
Autobús Illuminate \ Contracts \ Bus \ Dispatcher
Cache Illuminate \ Cache \ Repository cache
Config Illuminate \ Config \ Repository config
Galleta Iluminar \ Cookie \ CookieJar Galleta
Cripta Iluminar \ Cifrado \ Cifrado encriptador
DB Illuminate \ Database \ DatabaseManager db
DB (instancia) Iluminar \ Base de datos \ Conexión
Evento Iluminar \ Eventos \ Despachador eventos
Archivo Illuminate \ Sistema de archivos \ Sistema de archivos archivos
portón Illuminate \ Contracts \ Auth \ Access \ Gate
Picadillo Iluminar \ Contratos \ Hashing \ Hasher picadillo
Entrada Iluminar \ Http \ Solicitar solicitud
Lang Iluminar \ Traducción \ Traductor traductor
Iniciar sesión Illuminate \ Log \ Writer Iniciar sesión
Correo Illuminate \ Mail \ Mailer remitente
Contraseña Illuminate \ Auth \ Passwords \ PasswordBroker auth.password
Cola Illuminate \ Queue \ QueueManager cola
Cola (instancia) Illuminate \ Queue \ QueueInterface
Cola (clase base) Iluminar \ Cola \ Cola
Redirigir Illuminate \ Enrutamiento \ Redirector redireccionar
Redis Illuminate \ Redis \ Base de datos redis
Solicitud Iluminar \ Http \ Solicitar solicitud
Respuesta Illuminate \ Contracts \ Routing \ ResponseFactory
Ruta Iluminar \ Enrutamiento \ Enrutador enrutador
Esquema Illuminate \ Database \ Schema \ Blueprint
Sesión Illuminate \ Session \ SessionManager sesión
Sesión (instancia) Iluminar \ Sesión \ Tienda
Almacenamiento Illuminate \ Contracts \ Filesystem \ Factory sistema de archivos
URL Illuminate \ Enrutamiento \ UrlGenerator url
Validador Iluminar \ Validación \ Fábrica validador
Validador (instancia) Iluminar \ Validación \ Validador
Ver Iluminar \ Ver \ Fábrica ver
Ver (instancia) Iluminar \ Ver \ Ver

Ejemplo

Step 1 - Cree un proveedor de servicios llamado TestFacadesServiceProvider ejecutando el siguiente comando.

php artisan make:provider TestFacadesServiceProvider

Step 2 - Después de una ejecución exitosa, recibirá el siguiente resultado:

Step 3 - Crea una clase llamada TestFacades.php a App/Test.

App/Test/TestFacades.php

<?php
   namespace App\Test;
   class TestFacades{
      public function testingFacades() {
         echo "Testing the Facades in Laravel.";
      }
   }
?>

Step 4 - Crea una clase de fachada llamada “TestFacades.php” a “App/Test/Facades”.

App/Test/Facades/TestFacades.php

<?php

namespace app\Test\Facades;

use Illuminate\Support\Facades\Facade;

class TestFacades extends Facade {
   protected static function getFacadeAccessor() { return 'test'; }
}

Step 5 - Crea una clase de fachada llamada TestFacadesServiceProviders.php a App/Test/Facades.

App/Providers/TestFacadesServiceProviders.php

<?php

namespace App\Providers;

use App;
use Illuminate\Support\ServiceProvider;

class TestFacadesServiceProvider extends ServiceProvider {
   public function boot() {
      //
   }
   public function register() {
      App::bind('test',function() {
         return new \App\Test\TestFacades;
      });
   }
}

Step 6 - Agregar un proveedor de servicios en un archivo config/app.php como se muestra en la siguiente figura.

config/app.php

Step 7 - Agregar un alias en un archivo config/app.php como se muestra en la siguiente figura.

config/app.php

Step 8 - Agregue las siguientes líneas en app/Http/routes.php.

app/Http/routes.php

Route::get('/facadeex', function() {
   return TestFacades::testingFacades();
});

Step 9 - Visite la siguiente URL para probar la fachada.

http://localhost:8000/facadeex

Step 10 - Después de visitar la URL, recibirá el siguiente resultado: