外觀為應用程式服務容器中可用的類別提供靜態介面。 Laravel 外觀充當服務容器中底層類別的靜態代理,提供簡潔、富有表現力的語法的好處,同時保持比傳統靜態方法更高的可測試性和靈活性。
以下是在 Laravel 中創建 Facade 的步驟 -
第 1 步 - 建立 PHP 類別檔案。
第 2 步 - 將該類別綁定到服務提供者。
第 3 步 - 將該 ServiceProvider 註冊到
Configapp.php 作為提供者。
第 4 步 - 建立類別,該類別擴展至
照亮SupportFacadesFacade。
第 5 步 - 將點 4 作為別名註冊到 Configapp.php。
Laravel 附帶了許多 Facade。下表顯示了內建 Facade 類別的引用 -
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 |
第 1 步 - 透過執行下列指令建立一個名為 TestLaravel - 外觀 的服務提供者。
php artisan make:provider TestLaravel - 外觀
步驟 2 − 成功執行後,您將收到以下輸出 −
步驟 3 - 在 App/Test. 建立一個名為 TestFacades.php
的類App/Test/TestFacades.php
<?php namespace App\Test; class TestFacades{ public function testingFacades() { echo "Testing the Facades in Laravel."; } } ?>
步驟 4 - 在 「App/Test/Facades」 建立一個名為 「TestFacades.php」 的 Facade 類別。
應用程式/測試/Facades/TestFacades.php
<?php namespace app\Test\Facades; use Illuminate\Support\Facades\Facade; class TestFacades extends Facade { protected static function getFacadeAccessor() { return 'test'; } }
第 5 步 - 在 App/Test/Facades. 建立一個名為 TestLaravel - 外觀s.php
的 Facade 類別。App/Providers/TestLaravel - 外觀s.php
<?php namespace App\Providers; use App; use Illuminate\Support\ServiceProvider; class TestLaravel - 外觀 extends ServiceProvider { public function boot() { // } public function register() { App::bind('test',function() { return new \App\Test\TestFacades; }); } }
第 6 步 - 在檔案 config/app.php 中新增服務供應商,如下圖所示。
config/app.php
第 7 步 - 在檔案 config/app.php 中加入別名,如下圖所示。
config/app.php
第 8 步 - 在 app/Http/routes.php.
中加入以下行app/Http/routes.php
Route::get('/facadeex', function() { return TestFacades::testingFacades(); });
第 9 步 - 存取以下 URL 來測試外觀。
http://localhost:8000/facadeex
第 10 步 - 存取 URL 後,您將收到以下輸出 -
以上是Laravel - 外觀的詳細內容。更多資訊請關注PHP中文網其他相關文章!