Sprechen Sie über die Verwendung der Schnittstelle in PHP

青灯夜游
Freigeben: 2023-04-09 10:48:02
nach vorne
3183 Leute haben es durchsucht

Sprechen Sie über die Verwendung der Schnittstelle in PHP

Tatsächlich hat die PHP-Schnittstelle ihren Zweck.

Es handelt sich um Verträge, Bedienungsanleitungen für andere Entwickler. Es ist jedoch immer noch schwierig zu verstehen, wofür die Schnittstelle verwendet wird.

Basic

Interface ist eine abstrakte Klasse, die nicht direkt instanziiert, aber implementiert werden kann.

Dies ist ein einfaches Beispiel

interface MyInterface {
    public function setName(string $name);
    public function getName();
}

class MyClass implements MyInterface {
    private $name; 

    public function setName(string $name) { 
        $this->name = $name; 
    }

    public function getName() {
        return $this->name; 
    }
}
Nach dem Login kopieren

MyClass muss die Methoden setName() und getName() implementieren. Wenn Sie dies nicht tun, erhalten Sie einen schwerwiegenden Fehler.

Fataler Fehler: Klasse MyClass enthält 2 abstrakte Methoden und muss daher als abstrakt deklariert werden oder die restlichen Methoden (MyInterface::setName, MyInterface::getName) implementieren

Zusätzlich sind die in definierten Methoden Die Barrierefreiheit der Schnittstelle muss öffentlich sein und Klassenmitglieder können nicht in der Schnittstelle definiert werden.

Ursache

Entwickler verwenden Schnittstellen, um das allgemeine Verhalten einer Klasse oder einer Gruppe von Klassen zu beschreiben.

Aber warum ist es nur für die Kapselung der Implementierung verantwortlich und nicht für die Handhabung der Details jeder Klasse?

Zum Entkoppeln! Mit der

-Schnittstelle können Sie die Implementierung ändern, ohne die Details zu ändern, d. h. wie Sie diese Implementierung verwenden.

Weiterführende Beispiele

Die folgende Funktionalität ist für jedes Caching-System erforderlich

  • Cache speichern/einstellen Inhalt
  • Inhalt im Cache abrufen
  • Inhalt im Cache löschen

Auf dieser Grundlage können wir die folgende Cache-Schnittstelle erstellen

interface CacheInterface {
    public function set(string $key, $val);
    public function get(string $key);
    public function delete(string $key);
}
Nach dem Login kopieren

Auf diese Weise können Entwickler wissen, dass sie die Cache-Schnittstelle implementieren müssen. Wir müssen nicht wissen, wie sie implementiert werden. Das Ergebnis ist, dass wir das Cache-System problemlos wechseln können, ohne die Art und Weise seiner Verwendung zu ändern

Daher ist es einfach, das Cache-System zu ändern, ohne die Art und Weise zu ändern, wie das Cache-System im Projekt verwendet wird.

Symfony-Beispiel

Sehen wir uns jetzt die konkrete Anwendung des Beispiels an. Wenn Sie für Symfony ein Caching-System implementieren möchten, ist es am besten, dies wie folgt zu tun:

use Symfony\Contracts\Cache\CacheInterface;

class MyClass {
    private $cache;
    public function __construct(CacheInterface $cache)
    {
        $this->cache = $cache;
    }
}
Nach dem Login kopieren

Injizieren Sie die Cache-Schnittstelle durch Abhängigkeitsinjektion in unsere Klasse. Wenn wir das Cache-System das nächste Mal ändern, muss die MyClass-Klasse keine Änderungen vornehmen.

Mehrere Implementierungen vs. Mehrfachvererbung

PHP unterstützt keine Mehrfachvererbung, die folgende Methode ist nicht möglich

class MyClass extends ClassX, ClassY {}
Nach dem Login kopieren

Teil davon Der Grund, warum dies nicht zulässig ist, liegt am Diamond-Problem.

Sie können es jedoch

class ClassY extends ClassX {}
class MyClass extends ClassY {}
Nach dem Login kopieren

tun, aber ClassX und ClassY können unterschiedliche Dinge behandeln, also die Vererbung verwenden macht keinen Sinn.

Wenn Sie mehrere Verhaltensweisen ausführen möchten, können Sie mehrere Schnittstellen haben

class MyClass implements InterfaceX, InterfaceY {}
Nach dem Login kopieren

Mit anderen Worten, Sie können dafür sorgen, dass einige Klassen einen Teil der Funktionalität teilen, anstatt eine übergeordnete Klasse zu teilen.

Zusammenfassung

PHP-Schnittstelle ist eine Methodenvorlage einer Klasse, die für die entkoppelte Implementierung und Verwendung sehr hilfreich ist.

Diese Funktion ist besonders nützlich, wenn Sie Flexibilität wahren und sicherstellen müssen, dass alle Entwickler eine Reihe von Regeln befolgen.

[Verwandte Tutorial-Empfehlungen: „PHP-Tutorial“]

Das obige ist der detaillierte Inhalt vonSprechen Sie über die Verwendung der Schnittstelle in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:cnblogs.com
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!