Laravel - Facciate

Le facciate forniscono a staticinterfaccia alle classi disponibili nel contenitore dei servizi dell'applicazione. Laravelfacades servire come static proxies alle classi sottostanti nel contenitore dei servizi, fornendo il vantaggio di una sintassi concisa ed espressiva pur mantenendo una maggiore testabilità e flessibilità rispetto ai metodi statici tradizionali.

Come creare la facciata

Di seguito sono riportati i passaggi per creare Facade in Laravel:

  • Step 1 - Crea file di classe PHP.

  • Step 2 - Associa quella classe a Service Provider.

  • Step 3 - Registra quel ServiceProvider su

    Config \ app.php come provider.

  • Step 4 - Crea classe a cui si estende questa classe

    Illumina \ Supporto \ Facades \ Facade.

  • Step 5 - Registra il punto 4 in Config \ app.php come alias.

Facade Class Reference

Laravel viene fornito con molte facciate. La tabella seguente mostra i riferimenti alla classe Facade incorporati:

Facciata Classe Binding del contenitore di servizi
App Illuminate \ Foundation \ Application app
Artigiano Illumina \ Contratti \ Console \ Kernel artigiano
Aut Illumina \ Auth \ AuthManager auth
Auth (istanza) Illumina \ Auth \ Guard
Lama Illumina \ View \ Compilers \ BladeCompiler blade.compiler
Autobus Illumina \ Contratti \ Bus \ Dispatcher
Cache Illumina \ Cache \ Repository cache
Config Illumina \ Config \ Repository config
Cookie Illumina \ Cookie \ CookieJar biscotto
Cripta Illumina \ Encryption \ Encrypter criptatore
DB Illumina \ Database \ DatabaseManager db
DB (istanza) Illumina \ Database \ Connection
Evento Illumina \ Eventi \ Dispatcher eventi
File Illumina \ Filesystem \ Filesystem File
cancello Illumina \ Contracts \ Auth \ Access \ Gate
Hash Illumina \ Contratti \ Hashing \ Hasher hash
Ingresso Illumina \ Http \ Request richiesta
Lang Illumina \ Traduzione \ Traduttore traduttore
Log Illumina \ Log \ Writer log
Mail Illumina \ Mail \ Mailer mailer
Parola d'ordine Illumina \ Auth \ Passwords \ PasswordBroker autenticazione password
Coda Illumina \ Queue \ QueueManager coda
Coda (istanza) Illumina \ Queue \ QueueInterface
Coda (classe base) Illumina \ Queue \ Queue
Reindirizzare Illumina \ Routing \ Redirector reindirizzare
Redis Illumina \ Redis \ Database redis
Richiesta Illumina \ Http \ Request richiesta
Risposta Illumina \ Contracts \ Routing \ ResponseFactory
Itinerario Illumina \ Routing \ Router router
Schema Illumina \ Database \ Schema \ Blueprint
Sessione Illumina \ Session \ SessionManager sessione
Sessione (istanza) Illumina \ Session \ Store
Conservazione Illumina \ Contracts \ Filesystem \ Factory filesystem
URL Illumina \ Routing \ UrlGenerator url
Validatore Illumina \ Convalida \ Fabbrica validatore
Validatore (istanza) Illumina \ Validation \ Validator
Visualizza Illumina \ Visualizza \ Fabbrica Visualizza
Visualizza (istanza) Illumina \ Visualizza \ Visualizza

Esempio

Step 1 - Crea un fornitore di servizi chiamato TestFacadesServiceProvider eseguendo il seguente comando.

php artisan make:provider TestFacadesServiceProvider

Step 2 - Dopo aver eseguito con successo, riceverai il seguente output -

Step 3 - Crea una classe chiamata 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 classe Facade chiamata “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 classe Facade chiamata 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 - Aggiungi un fornitore di servizi in un file config/app.php come mostrato nella figura sotto.

config/app.php

Step 7 - Aggiungi un alias in un file config/app.php come mostrato nella figura sotto.

config/app.php

Step 8 - Aggiungi le seguenti righe app/Http/routes.php.

app/Http/routes.php

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

Step 9 - Visita il seguente URL per testare la facciata.

http://localhost:8000/facadeex

Step 10 - Dopo aver visitato l'URL, riceverai il seguente output -