Heim > PHP-Framework > Laravel > Hauptteil

Was ist der Unterschied zwischen Vertrag und Fassade in Laravel?

WBOY
Freigeben: 2022-02-15 16:37:01
Original
3033 Leute haben es durchsucht

Unterschied: 1. Der Vertrag bezieht sich auf eine Reihe von Schnittstellen, die vom Framework bereitgestellt werden und Kerndienste definieren, während die Fassade statische Schnittstellen für die Klassen des IoC-Dienstcontainers bereitstellt. 2. Der Vertrag kann als Methodendefinitionsschnittstelle betrachtet werden der Framework-Funktion, die eine große Anzahl der meisten Methoden speichert, und die Fassade stellt Methoden bereit, stellt statische Aufrufe bereit und muss keine Schnittstellen injizieren.

Was ist der Unterschied zwischen Vertrag und Fassade in Laravel?

Die Betriebsumgebung dieses Tutorials: Windows 10-System, Laravel 6-Version, DELL G3-Computer.

Was ist der Unterschied zwischen Verträgen und Fassaden in Laravel?

Einführung

Laravels Verträge sind eine Reihe von Schnittstellen, die vom Framework bereitgestellt werden und Kerndienste definieren. Beispielsweise definiert der Vertrag „illustraContractsQueueQueue“ die Methoden, die für die Warteschlange eines Auftrags erforderlich sind, während der Vertrag „illustraContractsMailMailer“ die Methoden definiert, die für das Versenden von E-Mails erforderlich sind. Und Verträge werden auch Verträge genannt

In unserer vorherigen Studie haben wir viele Hilfsfunktionen und einfache Methoden kennengelernt, die von der Fassadenfassade bereitgestellt werden und Methoden ohne Typhinweise implementieren können. Im Gegensatz zu Fassaden verfügt jede Fassade über entsprechende Vertragsmethoden Mit Verträgen können Sie Abhängigkeiten für Klassendefinitionen offenlegen

Wann Verträge verwendet werden sollen

Wie bereits an anderer Stelle erläutert, hängen viele Entscheidungen über die Verwendung von Verträgen oder Fassaden von persönlichen Vorlieben und den Vorlieben des Entwicklungsteams ab. Sowohl Contracts als auch Facades können verwendet werden, um leistungsstarke und gut getestete Laravel-Anwendungen zu erstellen. Solange Sie sich auf die Tatsache konzentrieren, dass eine Klasse eine einzige Verantwortung haben sollte, werden Sie feststellen, dass der tatsächliche Unterschied zwischen der Verwendung von Verträgen oder Fassaden tatsächlich sehr gering ist.

So nutzen Sie den Vertrag

Wie wird der Vertrag umgesetzt? Es ist eigentlich ganz einfach.

Viele Klassen in Laravel werden über den Service-Container aufgelöst, darunter Controller, Event-Listener, Middleware, Warteschlangenaufgaben und sogar Routing-Abschlüsse. Um den Vertrag zu implementieren, geben Sie daher einfach einen „Typhinweis“ für die Schnittstelle im Konstruktor der aufgelösten Klasse ein.

Sehen Sie sich zum Beispiel diesen Ereignis-Listener an:

<?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)
    {
        //
    }
}
Nach dem Login kopieren

Der Unterschied zwischen Vertrag und Fassade

Vertrag bezieht sich tatsächlich auf eine Reihe von Schnittstellen, die vom Framework bereitgestellt werden und Kerndienste definieren. Das Schlüsselwort ist diese Schnittstelle Oben können Sie verstehen, welche Funktionen diese Schnittstelle bietet. Diese Schnittstelle speichert die meisten Methoden, die wir verwenden müssen Wenn wir die Schnittstellenmethode verwenden möchten, müssen wir die entsprechende Schnittstelle einfügen, was sehr mühsam ist. Daher wurde die Fassade geboren, die statische Aufrufe bereitstellt und keine Schnittstelle benötigt.

[Verwandte Empfehlungen:

Laravel-Video-Tutorial

]

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen Vertrag und Fassade in Laravel?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!