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: