laravelのコントラクトとファサードの違いは何ですか
違い: 1. コントラクトはコア サービスを定義するフレームワークによって提供される一連のインターフェイスを指しますが、ファサードは IoC サービス コンテナーのクラスに静的インターフェイスを提供します; 2. コントラクトは次のようにみなできます。フレームワーク関数のメソッド定義インターフェイス。ほとんどのメソッドが保存され、ファサードはメソッドを提供し、静的呼び出しを提供し、インターフェイスを挿入する必要はありません。
このチュートリアルの動作環境: Windows 10 システム、Laravel 6 バージョン、DELL G3 コンピューター。
laravel のコントラクトとファサードの違いは何ですか
はじめに
Laravel のコントラクトは、フレームワークによって提供され、定義されるインターフェイスのセットです。コアサービス。たとえば、illuste\Contracts\Queue\Queue コントラクトはジョブをキューに入れるために必要なメソッドを定義し、illuste\Contracts\Mail\Mailer コントラクトはメールを送信するために必要なメソッドを定義します。コントラクトはコントラクトとも呼ばれます
前回の研究では、型ヒントなしでメソッドを実装できる Facades ファサードによって提供される多くの補助関数と単純なメソッドを学習しました。ほとんどの場合、各ファサードには対応するコントラクト メソッド。ファサードとは異なり、コントラクトを使用すると、クラス定義の依存関係を表示できます。
コントラクトを使用する場合
他の場所で説明したように、コントラクトの使用に関する決定の多くは、契約かファサードかは、最終的には個人の好みと開発チームの好みによって決まります。コントラクトとファサードの両方を使用して、強力で十分にテストされた Laravel アプリケーションを作成できます。クラスは単一の責任を持つべきであるという事実に焦点を当てる限り、コントラクトを使用するかファサードを使用するかの実際の違いは実際には非常に小さいことがわかります。
コントラクトの使用方法
では、コントラクトを実装するにはどうすればよいでしょうか?実はとてもシンプルなのです。
Laravel の多くのクラスは、コントローラー、イベント リスナー、ミドルウェア、キュー タスク、さらにはルーティング クロージャなど、サービス コンテナを通じて解決されます。したがって、コントラクトを実装するには、解決されたクラスのコンストラクターでインターフェイスを「タイプヒント」するだけです。
たとえば、次のイベント リスナーを参照してください:
<?php namespace App\Listeners; use App\Events\OrderWasPlaced; use App\Models\User; use Illuminate\Contracts\Redis\Factory; class CacheOrderInformation { /** * Redis 工厂实现 */ protected $redis; /** * 创建一个事件处理实例 * * @param Factory $redis * @return void */ public function __construct(Factory $redis) { $this->redis = $redis; } /** * 处理事件 * * @param OrderWasPlaced $event * @return void */ public function handle(OrderWasPlaced $event) { // } }
コントラクトとファサードの違い
コントラクトは、実際には、提供される一連の定義コアを参照します。フレームワークによる サービスのインターフェース、キーワードはこのインターフェースです 上記のコードを見ると、このインターフェースがどのような機能を提供しているのかがわかります コントラクトはフレームワーク関数のメソッド定義インターフェースとみなすことができます このインターフェースには関数が格納されていますほとんどのメソッド。
ファサードにもメソッドが用意されていますが、インターフェイス メソッドを使用するたびに、対応するインターフェイスを挿入する必要があり、非常に面倒です。そのため、ファサードは次の目的で生まれました。静的呼び出しを提供します。インターフェイスを挿入する必要はありません。
[関連する推奨事項: laravel ビデオ チュートリアル]
以上がlaravelのコントラクトとファサードの違いは何ですかの詳細内容です。詳細については、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)

ホットトピック









Laravel - アーティザン コマンド - Laravel 5.7 には、新しいコマンドを処理およびテストするための新しい方法が付属しています。これには職人コマンドをテストする新しい機能が含まれており、そのデモについては以下で説明します。

Laravel - ページネーションのカスタマイズ - Laravel には、ユーザーまたは開発者がページネーション機能を組み込むのに役立つページネーションの機能が含まれています。 Laravel ページネーターは、クエリ ビルダーおよび Eloquent ORM と統合されています。自動ページネーションメソッド

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

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

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

DCATを使用するときにDCATADMIN(Laravel-Admin)にデータを追加するためにカスタムクリックのテーブル関数を実装する方法...

Laravel - ダンプサーバー - Laravel ダンプサーバーには、Laravel 5.7 のバージョンが付属しています。以前のバージョンにはダンプ サーバーが含まれていません。ダンプサーバーはlaravel/laravelコンポーザーファイルの開発依存関係になります。

Laravel FrameworkでRedis接続の共有の影響とLaravelフレームワークとRedisを使用する際のメソッドを選択すると、開発者は問題に遭遇する可能性があります。
