首頁 > 後端開發 > php教程 > 了解如何在Laravel創建自定義立面

了解如何在Laravel創建自定義立面

Karen Carpenter
發布: 2025-03-06 02:37:12
原創
527 人瀏覽過

Laravel立面:服務的方便訪問點

Laravel的外牆提供了一種簡化與服務交互的方法,從而通過用戶友好的界面簡化了訪問。 最初,立面登錄方法似乎令人困惑,但是了解其作用闡明了其效用。 立面是Laravel服務容器中基礎服務的方便代理。 由於

>方法,找到鏈接到任何給定立面的服務非常簡單。此方法返回註冊的服務名稱。

getFacadeAccessor()例如,

外觀的登錄器看起來像這樣:DB>

// Illuminate\Support\Facades\DB;

protected static function getFacadeAccessor()
{
    return 'db';
}
登入後複製
字符串

識別外牆使用的容器中的服務。 可以使用Tinker進行驗證:'db'

Learn how to create custom Facades in Laravel

有些立面可能會將方法委託給管理類別類,而管理類又與低級宏或數據庫連接類交互:

public function __call($method, $parameters)
{
    if (static::hasMacro($method)) {
        return $this->macroCall($method, $parameters);
    }

    return $this->connection()->$method(...$parameters);
}
登入後複製
沒有指定的連接,

默認為已配置的連接(例如,在上面的示例中)。 DatabaseManager sqliteLaravel文檔提供了有關立面功能的全面詳細信息和可用外牆的完整列表。

創建自定義外牆

>對應用程序開發並不是嚴格必要的,但是創建自定義立面可以提高生產力,尤其是對於經常使用的服務。 當與助手或專用

>名稱空間內合作時,這尤其有益。 這種方法可以平衡拉拉維爾的靈活性和既定的慣例。

要生成立面,請使用工匠命令: AppFacades

>假設您已經在應用程序的服務提供商中定義了一項服務,則該立面將如下實現:

或者,如果未定義別名或服務提供商中未使用字符串,則可以直接使用完全合格的類名稱:
php artisan make:class App/Facades/Example
登入後複製

AppExampleService幕牆的一個重要優勢是在測試過程中易於嘲笑基礎服務:

namespace App\Facades;

use Illuminate\Support\Facades\Facade;

class Example extends Facade
{
    protected static function getFacadeAccessor()
    {
        return 'example_service';
    }
}
登入後複製
Laravel沒有外牆,提供類似模擬功能之類的方法:

protected static function getFacadeAccessor()
{
    return \App\ExampleService::class;
}
登入後複製
>最終,使用外牆和其他方法之間的選擇取決於個人偏好和項目需求。 但是,對於經常訪問的服務,立面可以顯著提高代碼的可讀性和可維護性,而無需犧牲依賴注入的好處。

以上是了解如何在Laravel創建自定義立面的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板