Laravelフレームワークでのサービスプロバイダーとファサードパターン(Facade)の使用法(コード)
laravelフレームワークの組み込みファイルシステムの関連操作を使用すると非常に便利ですが、これはどのように実装されているのでしょうか?次の記事では、php 中国語の Web サイトで関連する原則について詳しく説明します。早速、記事の内容を見てみましょう。
紹介から始めましょう:
Laravel 独自のファイルシステムを例として、構成ファイル config/app.php のプロバイダー配列に、サービスプロバイダーが登録されています:
IlluminateFilesystemFilesystemServiceProvider::class,
エイリアス配列 Aファサードは次のように定義されます:
‘File’ => IlluminateSupportFacadesFile::class,
これらの 2 つのステップを通じて、Laravel が提供するファイルシステム関連の操作を非常に便利に使用できます。また、呼び出し形式は次のように非常に単純です:
File::exist($path)、判定ファイルが存在するかどうか。
File::get($path, $lock = false)、ファイルの内容を取得します。
File::append($path, $data)、ファイルの末尾にコンテンツを追加します。
File::files($directory)、ディレクトリ内のすべてのファイルを取得します。
Laravel のサービスプロバイダーとファサードモードについてそれぞれ話しましょう。
サービスプロバイダー
最初に定義を見てみましょう:
サービスプロバイダーは、すべてのLaravelアプリケーションが開始される中心です。独自のアプリケーションを含むすべてのコア Laravel サービスは、サービスプロバイダーを通じて起動されます。
/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemServiceProvider.php にあるファイル システム サービス プロバイダーでは、 register メソッドでシングルトンがバインドされていることを確認できます。
protected function registerNativeFilesystem() { $this->app->singleton('files', function () { return new Filesystem; }); }
このシングルトンは、次のファイルシステム パターンです。クラス。もちろん、このサービス プロバイダーは他のシングルトンをバインドしたり、さらに多くのことを実行したりすることもできます。ここでは、File::exist() 呼び出しメソッドの原理のみを学習します。
次に、ファイルのインスタンスが 1 つあります。これは、実際には Filesystem クラスのインスタンスです。
この時点で、ファサードがない場合は、次のようにファイルシステム インスタンスのメソッドを呼び出すこともできます:
app(‘files’)->exist($path)
さて、ファサードについて話しましょう。
ファサード ファサード モード
ファサードはアプリケーションのサービス コンテナで使用できるクラスは、「静的」インターフェイスを提供します。 Laravelにはたくさんのものが付属しています ファサードは、ほぼすべてのサービスにアクセスするために使用できます。 Laravelのファサード これらは、サービス コンテナ内の基本クラスの「静的プロキシ」です。従来の静的メソッド呼び出しと比較して、ファサードはよりシンプルで豊富な構文を提供するだけでなく、テスト容易性と拡張性も優れています。
この記事の冒頭で、エイリアス配列がファイルを定義すると述べました。特定のクラスは
IlluminateSupportFacadesFile::class であり、
その内容は次のとおりです:
class File extends Facade { /** * Get the registered name of the component. * * @return string */ protected static function getFacadeAccessor() { return 'files'; } }
実際には名前に注意してください。ファイル、シングルトンパターンの名前がバインドされているだけですよね?それは正しい。
このようにして、File エイリアスまたはファサードを使用して、この Filesystem インスタンスのメソッドを呼び出すことができます。
この記事を通して、サービスプロバイダーとFacade、実際に呼び出されるクラスのインスタンスの関係を理解していただければ幸いです。
上記がこの記事の全内容です。laravel の詳細については、laravel フレームワーク入門チュートリアルを参照してください。
おすすめ関連記事:
Laravelフレームワークの補助関数: オプションの()関数の紹介
おすすめ関連コース:
2017年最新 5つのおすすめLaravelビデオチュートリアル
以上がLaravelフレームワークでのサービスプロバイダーとファサードパターン(Facade)の使用法(コード)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









このチュートリアルでは、PHPを使用してXMLドキュメントを効率的に処理する方法を示しています。 XML(拡張可能なマークアップ言語)は、人間の読みやすさとマシン解析の両方に合わせて設計された多用途のテキストベースのマークアップ言語です。一般的にデータストレージに使用されます

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

文字列は、文字、数字、シンボルを含む一連の文字です。このチュートリアルでは、さまざまな方法を使用してPHPの特定の文字列内の母音の数を計算する方法を学びます。英語の母音は、a、e、i、o、u、そしてそれらは大文字または小文字である可能性があります。 母音とは何ですか? 母音は、特定の発音を表すアルファベットのある文字です。大文字と小文字など、英語には5つの母音があります。 a、e、i、o、u 例1 入力:string = "tutorialspoint" 出力:6 説明する 文字列「TutorialSpoint」の母音は、u、o、i、a、o、iです。合計で6元があります

静的結合(静的::) PHPで後期静的結合(LSB)を実装し、クラスを定義するのではなく、静的コンテキストで呼び出しクラスを参照できるようにします。 1)解析プロセスは実行時に実行されます。2)継承関係のコールクラスを検索します。3)パフォーマンスオーバーヘッドをもたらす可能性があります。

PHPの魔法の方法は何ですか? PHPの魔法の方法には次のものが含まれます。1。\ _ \ _コンストラクト、オブジェクトの初期化に使用されます。 2。\ _ \ _リソースのクリーンアップに使用される破壊。 3。\ _ \ _呼び出し、存在しないメソッド呼び出しを処理します。 4。\ _ \ _ get、dynamic属性アクセスを実装します。 5。\ _ \ _セット、動的属性設定を実装します。これらの方法は、特定の状況で自動的に呼び出され、コードの柔軟性と効率を向上させます。

Laravelの電子メールの送信が失敗したときに戻りコードを取得する方法。 Laravelを使用してアプリケーションを開発する場合、検証コードを送信する必要がある状況に遭遇することがよくあります。そして実際には...

LaravelスケジュールタスクRAN RANSPONSIVEトラブルシューティングRALAVELのスケジュールタスクスケジューリングを使用すると、多くの開発者がこの問題に遭遇します。スケジュール:実行...

Laravelの電子メールの検証コードの送信の障害を処理する方法は、Laravelを使用することです...
