Heim > PHP-Framework > Laravel > Hauptteil

Laravel – Verträge

王林
Freigeben: 2024-08-27 10:50:50
Original
714 Leute haben es durchsucht

Laravel-Verträge sind eine Reihe von Schnittstellen mit verschiedenen Funktionalitäten und Kerndiensten, die vom Framework bereitgestellt werden.

Zum Beispiel verwendet der Vertrag IlluminateContractsQueueQueue eine Methode, die zum Einreihen von Aufträgen benötigt wird, und IlluminateContractsMailMailer verwendet die Methode zum Versenden von E-Mails.

Jeder definierte Vertrag beinhaltet die entsprechende Umsetzung des Frameworks. Alle Laravel-Verträge sind im GitHub-Repository verfügbar, wie unten erwähnt −

https://github.com/illuminate/contracts

Dieses Repository stellt eine Vielzahl von Verträgen bereit, die im Laravel-Framework verfügbar sind und heruntergeladen und entsprechend verwendet werden können.

Wichtige Punkte

Bitte beachten Sie bei der Arbeit mit Laravel-Verträgen die folgenden wichtigen Punkte −

  • Es ist zwingend erforderlich, Fassaden im Konstruktor einer Klasse zu definieren.

  • Verträge werden explizit in den Klassen definiert und Sie müssen die Verträge nicht in Konstruktoren definieren.

Beispiel

Beachten Sie den unten aufgeführten Vertrag zur Autorisierung in Laravel −

<?php

namespace Illuminate\Contracts\Auth\Access;

interface Authorizable{
   /**
      * Determine if the entity has a given ability.
      *
      * @param string $ability
      * @param array|mixed $arguments
      * @return bool
   */
   public function can($ability, $arguments = []);
}
Nach dem Login kopieren

Der Vertrag verwendet eine Funktion, die einen Parameter namens ability und arguments enthält, der die Benutzeridentifikation in Form eines Array verwendet.

Sie müssen einen Vertrag wie in der folgenden Syntax gezeigt definieren −

interface <contract-name>
Nach dem Login kopieren

Verträge werden wie Fassaden verwendet, um robuste, gut getestete Laravel-Anwendungen zu erstellen. Es gibt verschiedene praktische Unterschiede bei der Nutzung von Verträgen und Fassaden.

Der folgende Code zeigt die Verwendung eines Vertrags zum Zwischenspeichern eines Repositorys −

<?php

namespace App\Orders;
use Illuminate\Contracts\Cache\Repository as Cache;

class Repository{
   /**
      * The cache instance.
   */
   
   protected $cache;
   
   /**
      * Create a new repository instance.
      *
      * @param Cache $cache
      * @return void
   */
   
   public function __construct(Cache $cache) {
      $this->cache = $cache;
   }
}
Nach dem Login kopieren

Vertrag enthält keine Implementierung und neue Abhängigkeiten; Es ist einfach, eine alternative Implementierung eines bestimmten Vertrags zu schreiben, sodass ein Benutzer die Cache-Implementierung ersetzen kann, ohne die Codebasis zu ändern.

Das obige ist der detaillierte Inhalt vonLaravel – Verträge. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php
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