ファサードは、アプリケーションのサービスコンテナで利用可能なクラスに「静的」インターフェースを提供します。
Laravel には多くのファサードが付属しており、知らず知らずのうちにそれらを使用している可能性もあります。
xpower の静的インターフェイス (ファサード)
前提条件 1: サービス コンテナーにバインドされたクラス (xpower) があります
前提条件 2: これをサービス プロバイダー クラス (以下のシングルトン メソッド) に登録しています
5. 次に、ファサード基本クラスを継承する xpower のファサードを作成します。 getFacadeAccessor メソッドを実装する必要があります。文字列が返されます。これは、実際にはサービス プロバイダーの登録済みバインディング シングルトン (シングルトン メソッド) の名前です。この名前は気軽に書くことができます。ここでは xpower
<?php namespace App\Facades; use Illuminate\Support\Facades\Facade; class XP extends Facade { protected static function getFacadeAccessor() { return 'xpower'; } }
6 です。次に、構成ファイル config/app.php にファサード カテゴリ名を登録する必要があります:
'aliases' => [ ...//其他门面类别名映射 'XP' => App\Facades\XP::class, ],
XP::activate を直接使用して xpower をアクティブ化できます。現時点ではスーパーパワー
AppFacadesXPの導入を使用してください。そうしないと見つかりません。
分析:
1.XP::activate は、まずコンテナに移動して XP インスタンス (既にコンテナに登録されている) を見つけ、xpower 文字列を返します
2.xpower 文字列もバインドされ、登録されていますコンテナにアクセスし、Xpower サービス インスタンスに戻ります
3。::activate は実際に基本クラス ファサードの __callstatic メソッドを呼び出し、それを ->show() の形式の呼び出しに変換します。