首頁 >php框架 >Laravel >Laravel - 外觀

Laravel - 外觀

PHPz
PHPz原創
2024-08-27 10:50:431268瀏覽

外觀為應用程式服務容器中可用的類別提供靜態介面。 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
Mail 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 − 成功執行後,您將收到以下輸出 −

Laravel - 外觀

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

Service Provider

第 7 步 - 在檔案 config/app.php 中加入別名,如下圖所示。

config/app.php

Laravel - 外觀

第 8 步 - 在 app/Http/routes.php.

中加入以下行

app/Http/routes.php

Route::get('/facadeex', function() {
   return TestFacades::testingFacades();
});

第 9 步 - 存取以下 URL 來測試外觀。

http://localhost:8000/facadeex

第 10 步 - 存取 URL 後,您將收到以下輸出 -

Testing Facades

以上是Laravel - 外觀的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn