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!