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: