Home>Article>PHP Framework> Laravel - Facades
Facades provide astaticinterface to classes that are available in the application's service container. Laravelfacadesserve asstatic proxiesto underlying classes in the service container, providing the benefit of a terse, expressive syntax while maintaining more testability and flexibility than traditional static methods.
The following are the steps to create Facade in Laravel −
Step 1− Create PHP Class File.
Step 2− Bind that class to Service Provider.
Step 3− Register that ServiceProvider to
Configapp.php as providers.
Step 4− Create Class which is this class extends to
lluminateSupportFacadesFacade.
Step 5− Register point 4 to Configapp.php as aliases.
Laravel ships with many Facades. The following table show the in-built Facade class references −
| Facade | Class | Service Container Binding |
|---|---|---|
| App | IlluminateFoundationApplication | app |
| Artisan | IlluminateContractsConsoleKernel | artisan |
| Auth | IlluminateAuthAuthManager | auth |
| Auth (Instance) | IlluminateAuthGuard | |
| Blade | IlluminateViewCompilersBladeCompiler | blade.compiler |
| Bus | IlluminateContractsBusDispatcher | |
| Cache | IlluminateCacheRepository | cache |
| Config | IlluminateConfigRepository | config |
| Cookie | IlluminateCookieCookieJar | cookie |
| Crypt | IlluminateEncryptionEncrypter | encrypter |
| DB | IlluminateDatabaseDatabaseManager | db |
| DB (Instance) | IlluminateDatabaseConnection | |
| Event | IlluminateEventsDispatcher | events |
| File | IlluminateFilesystemFilesystem | files |
| Gate | IlluminateContractsAuthAccessGate | |
| Hash | IlluminateContractsHashingHasher | hash |
| Input | IlluminateHttpRequest | request |
| Lang | IlluminateTranslationTranslator | translator |
| Log | IlluminateLogWriter | log |
| IlluminateMailMailer | mailer | |
| Password | IlluminateAuthPasswordsPasswordBroker | auth.password |
| Queue | IlluminateQueueQueueManager | queue |
| Queue (Instance) | IlluminateQueueQueueInterface | |
| Queue (Base Class) | IlluminateQueueQueue | |
| Redirect | IlluminateRoutingRedirector | redirect |
| Redis | IlluminateRedisDatabase | redis |
| Request | IlluminateHttpRequest | request |
| Response | IlluminateContractsRoutingResponseFactory | |
| Route | IlluminateRoutingRouter | router |
| Schema | IlluminateDatabaseSchemaBlueprint | |
| Session | IlluminateSessionSessionManager | session |
| Session (Instance) | IlluminateSessionStore | |
| Storage | IlluminateContractsFilesystemFactory | filesystem |
| URL | IlluminateRoutingUrlGenerator | url |
| Validator | IlluminateValidationFactory | validator |
| Validator (Instance) | IlluminateValidationValidator | |
| View | IlluminateViewFactory | view |
| View (Instance) | IlluminateViewView |
Step 1− Create a service provider calledTestLaravel - Facadesby executing the following command.
php artisan make:provider TestLaravel - Facades
Step 2− After successful execution, you will receive the following output −
Step 3− Create a class calledTestFacades.phpatApp/Test.
App/Test/TestFacades.php
Step 4− Create a Facade class called“TestFacades.php”at“App/Test/Facades”.
App/Test/Facades/TestFacades.php
Step 5− Create a Facade class calledTestLaravel - Facadess.phpatApp/Test/Facades.
App/Providers/TestLaravel - Facadess.php
Step 6− Add a service provider in a fileconfig/app.phpas shown in the below figure.
config/app.php
Step 7− Add an alias in a fileconfig/app.phpas shown in the below figure.
config/app.php
Step 8− Add the following lines inapp/Http/routes.php.
app/Http/routes.php
Route::get('/facadeex', function() { return TestFacades::testingFacades(); });
Step 9− Visit the following URL to test the Facade.
http://localhost:8000/facadeex
Step 10− After visiting the URL, you will receive the following output −
The above is the detailed content of Laravel - Facades. For more information, please follow other related articles on the PHP Chinese website!