ホームページ PHPフレームワーク Laravel Laravelフレームワークでのサービスプロバイダーとファサードパターン(Facade)の使用法(コード)

Laravelフレームワークでのサービスプロバイダーとファサードパターン(Facade)の使用法(コード)

Jul 31, 2018 pm 06:00 PM
facades laravel php

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フレームワークの補助関数: オプションの()関数の紹介

Laravel5.5の新機能: プリセットコマンドの解析

おすすめ関連コース:

2017年最新 5つのおすすめLaravelビデオチュートリアル

以上がLaravelフレームワークでのサービスプロバイダーとファサードパターン(Facade)の使用法(コード)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

PHPでHTML/XMLを解析および処理するにはどうすればよいですか? PHPでHTML/XMLを解析および処理するにはどうすればよいですか? Feb 07, 2025 am 11:57 AM

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

JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 Apr 05, 2025 am 12:04 AM

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

母音を文字列にカウントするPHPプログラム 母音を文字列にカウントするPHPプログラム Feb 07, 2025 pm 12:12 PM

文字列は、文字、数字、シンボルを含む一連の文字です。このチュートリアルでは、さまざまな方法を使用して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での後期静的結合を説明します(静的::)。 PHPでの後期静的結合を説明します(静的::)。 Apr 03, 2025 am 12:04 AM

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

PHPマジックメソッド(__construct、__destruct、__call、__get、__setなど)とは何ですか? PHPマジックメソッド(__construct、__destruct、__call、__get、__setなど)とは何ですか? Apr 03, 2025 am 12:03 AM

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

Laravelで電子メールの送信が失敗したときに返品コードを取得する方法は? Laravelで電子メールの送信が失敗したときに返品コードを取得する方法は? Apr 01, 2025 pm 02:45 PM

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

Laravelスケジュールタスクは実行されません:スケジュール:実行コマンドの後にタスクが実行されていない場合はどうすればよいですか? Laravelスケジュールタスクは実行されません:スケジュール:実行コマンドの後にタスクが実行されていない場合はどうすればよいですか? Mar 31, 2025 pm 11:24 PM

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

Laravelでは、検証コードが電子メールで送信できない状況に対処する方法は? Laravelでは、検証コードが電子メールで送信できない状況に対処する方法は? Mar 31, 2025 pm 11:48 PM

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

See all articles