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 |
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 -