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
Copy after login
Step 5− Create a Facade class calledTestLaravel - Facadess.phpatApp/Test/Facades.
App/Providers/TestLaravel - Facadess.php
Copy after login
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!
Introduction to laravel components
Introduction to laravel middleware
What are the design patterns used by laravel?
Which one is easier, thinkphp or laravel?
How to set Chinese in vscode
How to solve the problem of not being able to create a new folder in Win7
Three major characteristics of java
js function function usage