Heim >PHP-Framework >Laravel >Laravel – Verträge

Laravel – Verträge

王林
王林Original
2024-08-27 10:50:50803Durchsuche

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 = []);
}

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>

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;
   }
}

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!

Stellungnahme:
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
Vorheriger Artikel:Laravel - FassadenNächster Artikel:Laravel - Fassaden