Laravel立面:服務的方便訪問點
Laravel的外牆提供了一種簡化與服務交互的方法,從而通過用戶友好的界面簡化了訪問。 最初,立面登錄方法似乎令人困惑,但是了解其作用闡明了其效用。 立面是Laravel服務容器中基礎服務的方便代理。 由於
>方法,找到鏈接到任何給定立面的服務非常簡單。此方法返回註冊的服務名稱。
getFacadeAccessor()
例如,
外觀的登錄器看起來像這樣:DB
>
// Illuminate\Support\Facades\DB; protected static function getFacadeAccessor() { return 'db'; }
識別外牆使用的容器中的服務。 可以使用Tinker進行驗證:'db'
public function __call($method, $parameters) { if (static::hasMacro($method)) { return $this->macroCall($method, $parameters); } return $this->connection()->$method(...$parameters); }
默認為已配置的連接(例如,在上面的示例中)。 DatabaseManager
sqlite
Laravel文檔提供了有關立面功能的全面詳細信息和可用外牆的完整列表。
創建自定義外牆
>對應用程序開發並不是嚴格必要的,但是創建自定義立面可以提高生產力,尤其是對於經常使用的服務。 當與助手或專用
>名稱空間內合作時,這尤其有益。 這種方法可以平衡拉拉維爾的靈活性和既定的慣例。要生成立面,請使用工匠命令: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'; } }
protected static function getFacadeAccessor() { return \App\ExampleService::class; }
以上是了解如何在Laravel創建自定義立面的詳細內容。更多資訊請關注PHP中文網其他相關文章!