Objektorientierte Programmierung in WordPress Vererbung I

Eine der schwierigsten Aufgaben bei der Erstellung einer Serie für Anfänger in objektorientierter Programmierung besteht darin, zu wissen, wo sie aufhören müssen.

Es gibt so viele Themen, die behandelt werden müssen, dass wir uns langsam in Richtung fortschrittlicher Programmiertechniken bewegen können, um letztendlich genau das zu tun, was unsere beabsichtigte Mission war: Anfänger mit einer Reihe von Werkzeugen, Strategien und dem Verständnis von Anfangskonzepten zu bewaffnen.

Beachten Sie zunächst, dass wir im letzten Beitrag der Serie unser erstes vollständiges Plugin mit objektorientierten Techniken fertiggestellt haben. Zum größten Teil hat es alles gekapselt, was wir durch diesen Punkt der Serie abgedeckt haben (außer natürlich Vererbung)..

Beachten Sie dazu die folgenden Artikel:

  1. Eine Einleitung
  2. Klassen
  3. Typen
  4. Kontrollstrukturen: Bedingte Anweisungen
  5. Kontrollstrukturen: Schleifen
  6. Funktionen und Attribute
  7. Umfang
  8. Plugin erstellen I
  9. Plugin bauen II
  10. Dokumentieren Sie das Plugin I
  11. Dokumentieren Sie das Plugin II

Ich weiß, es ist eine Menge, aber denken Sie daran: Das Ziel der Serie ist es, den absoluten Anfänger mit allem zu versorgen, was für das Arbeiten mit PHP und das Schreiben von WordPress-Plugins mit objektorientierten Techniken erforderlich ist.

Zu diesem Zweck habe ich mich entschlossen, diese Serie mit einem zweiteiligen Artikel (mit einem dritten, letzten Teil, der als Zusammenfassung dient) zusammenzufassen, der einen Einblick in das nächste Thema der Entwicklung für angehende PHP-Programmierer bietet: Vererbung.

Für diejenigen, die mehr Erfahrung mit Programmierern haben, ist Vererbung für Sie kein Ziel. Wenn Sie ein Anfänger sind, ist Vererbung eines der Konzepte, die leicht zu verstehen sind, etwas schwieriger zu implementieren ist (ob Sie es glauben oder nicht) und das kann zu noch mehr Verwirrung führen, wenn es um Themen wie Polymorphismus geht ( worüber wir später reden werden)

In den nächsten beiden Artikeln möchte ich all das zusammen mit Beispielcode abdecken, um es zu sichern. Aber bevor wir uns einen Code ansehen, denke ich, dass es wichtig ist, die wichtigen Konzepte zu verstehen und einige der notwendigen Schritte zu betrachten, um objektorientierten Code für die Vererbung vorzubereiten.

In diesem Artikel werden wir die Vererbung definieren, versuchen, ein konzeptionelles Modell für das, was tatsächlich vor sich geht, zu bilden, die Nuancen von sogenannten Basisklassen und Unterklassen sowie einige der reservierten Schlüsselwörter in der Sprache zu untersuchen muss angepasst werden, um die Vererbung durch Klassen hindurch zu unterstützen.

Lassen Sie uns mit diesem Plan als Wegweiser für den Artikel fortfahren und loslegen.

Vererbung definiert

Im Gegensatz zu anderen Programmierausdrücken ist Vererbung eigentlich ein Wort, das dessen Konzept ziemlich gut beschreibt. Direkt aus Wikipedia:

Bei der objektorientierten Programmierung (OOP) wird Vererbung verwendet, wenn ein Objekt oder eine Klasse auf einem anderen Objekt oder einer anderen Klasse basiert und dieselbe Implementierung verwendet. Es ist ein Mechanismus zur Wiederverwendung von Code. Die Beziehungen von Objekten oder Klassen durch Vererbung führen zu einer Hierarchie.

Relativ klar, nicht wahr? Aber ich denke, wir können es besser machen.

Zu Beginn dieser Serie haben wir darüber gesprochen, wie viele der gebräuchlicheren Programmiersprachen Beispiele wie verwenden Tiere und Fahrzeuge um das Konzept der objektorientierten Programmierung zu demonstrieren.

Die Idee der objektorientierten Programmierung ist schließlich, dass wir Objekte der realen Welt modellieren sollten. Naja, so ungefähr. Aber wie oft haben Sie einen physischen gesehen? Blogeintrag?

Genau.

Daher versuche ich immer, Dinge in die Perspektive von etwas zu bringen, das viel greifbarer und praktischer ist und das enger mit dem Inhalt zusammenhängt, den wir tatsächlich erstellen werden.

Auf diese Weise können wir Vererbung im Kontext objektorientierter Programmierung angemessen beschreiben, ohne dass das Konzept durch triviale Beispiele zerstört wird?

Lass uns das versuchen: 

Vererbung ist, wenn eine Klasse als übergeordnete Klasse für eine untergeordnete Klasse dient, die eine Reihe von Attributen und Methoden bereitstellt, die sowohl dem übergeordneten als auch dem untergeordneten Element gemeinsam sind. das Kind jedoch als die Fähigkeit, seine eigenen Attribute einzuführen.

Im obigen Zitat verwenden wir ein paar Begriffe wie "Elternklasse" und "Kindklasse", von denen wir etwas näher erläutern werden, aber der Punkt ist, dass wir buchstäblich eine Hierarchie von Klassen erstellen können welche erben Informationen aus ihren Elternklassen.

Wenn Sie mit einer untergeordneten Klasse arbeiten und die in der übergeordneten Klasse oder der Basisklasse definierten Attribute und Funktionen nutzen möchten, können Sie dies sogar ohne zusätzlichen Code tun.

Aber wir kommen uns voraus. Bevor wir das tun, stellen wir sicher, dass wir ein konzeptionelles Modell davon erhalten können, wie Vererbung aussieht. Obwohl wir Code schreiben, versuchen wir ein Modell bereitzustellen, das nicht nur ein tatsächliches Objekt darstellt, sondern auch eine Beziehung zwischen den Objekten herstellt.

Vererbung visualisieren

Bevor wir weitergehen, werfen wir einen Blick auf ein sehr einfaches Klassendiagramm, wie Vererbung funktioniert. 

Beachten Sie, dass wir drei Klassen verwenden:
  • Inhalt Diese dient als Basisklasse und stellt einen generischen Informationstyp dar, der Daten für andere, spezifischere Inhaltstypen enthält.
  • Kommentar was einen Kommentar zu einem Blogbeitrag darstellt. Diese Klasse enthält Informationen, von denen sie erbt Inhalt und dass es in sich definiert.
  • Post erbt auch von Inhalt was einen einzelnen Blogeintrag darstellt. Es enthält allgemeines Inhalt Informationen, enthält jedoch auch eigene Informationen, die für diese Klasse spezifisch sind.

Nun, dies ist eindeutig ein vereinfachtes Beispiel für Vererbung, aber im Kern dieses ist wie Vererbung funktioniert In einem zukünftigen Artikel werden wir einen Blick auf die Funktionsweise von Instantiierung, Datenzugriff und anderen Funktionen werfen.

Zunächst müssen wir jedoch noch einige Begriffe klären und sicherstellen, dass wir alle erforderlichen Informationen haben.

Klasse Jargon

Wie wir bereits in dieser Serie angesprochen haben, gibt es eine Reihe von Begriffen, die wir alle verwendet haben, um zu verstehen, wie die verschiedenen Teile der Vererbung zusammenarbeiten.

Zu diesem Zweck ist es wichtig, einige allgemeine Definitionen für die Wörter zu definieren, die wir verwenden, nicht nur, weil wir sie in diesem Artikel verwenden, weil Sie sie nicht nur hier verwenden werden, sondern auch Wenn Sie sie an anderer Stelle verwenden möchten, können Sie sie in anderen Artikeln im Web austauschbar verwenden:

  • Eine übergeordnete Klasse, auch Basisklasse genannt, ist die Klasse, von der andere Klassen Informationen erben, wie in der obigen Abbildung gezeigt. Es verwaltet eine Reihe von Eigenschaften und Funktionen.
  • Beachten Sie, dass einige der Funktionen, die in der Basisklasse für Fremdklassen, die untergeordneten Klassen oder verfügbar sind, verfügbar sind nur innerhalb der Basisklasse selbst.
  • Die untergeordnete Klasse, normalerweise als Unterklasse bezeichnet, ist die Klasse, die Informationen, Daten und Funktionalität von ihrer übergeordneten Klasse erbt. 
  • Wir werden uns den Code dazu im nächsten Post ansehen. Beachten Sie jedoch, dass der Zugriff auf Daten nur in eine Richtung möglich ist. Das heißt, Unterklassen können auf Informationen in ihrer Basisklasse zugreifen, Basisklassen sind sich jedoch ihrer Unterklassen nicht bewusst.

Diese sollte klären Sie viele Begriffe rund um das auf; Wenn nicht, denken Sie daran, sagen wir, einen Familienstammbaum, in dem Sie Eltern und Kinder haben. Kinder erben Merkmale von ihren Eltern, aber Eltern erben Merkmale nicht von ihren Kindern.

Beachten Sie auch, dass einige Entwickler beim Programmieren die sogenannte "Mehrfachvererbung" einführen möchten, was im Wesentlichen bedeutet, dass eine einzelne Klasse Eigenschaften und Methoden von mehreren Klassen erben kann.

Dies ist nicht nur in PHP eingeschränkt, sondern auch außerhalb des Anwendungsbereichs dieser speziellen Serie.

Nebenbei für abstrakte Klassen

Für diejenigen, die mit dem Konzept der Vererbung ein wenig vertraut sind, sind Sie wahrscheinlich auch mit dem Konzept der abstrakten Klassen vertraut.

Wenn Sie jedoch mit dem Konzept der abstrakten Klassen vertraut sind, würde ich behaupten, dass Sie kein Anfänger sind und nicht wirklich die Zielgruppe für den Inhalt sind, den wir mit diesem Artikel erreichen. 

Abhängig von den Rückmeldungen zu diesem Artikel, dieser Serie und, falls andere daran interessiert sind, können wir vielleicht einen Folgeartikel oder ein paar Artikel zu diesem Thema erstellen.

Im Anschluss…

Im nächsten Artikel werden wir unsere Diskussion über Vererbung fortsetzen, während wir uns ansehen, wie sie in PHP implementiert werden kann. Wir werden auch einen Blick darauf werfen, wie Unterklassen auf die Daten ihrer Eltern zugreifen können und wie Elternklassen Informationen in sich selbst sichern können

Hinterlassen Sie in der Zwischenzeit sicher, dass Sie Feedback, Fragen und / oder Kommentare zu Vererbung im Kommentar-Feed hinterlassen, und ich werde versuchen, sie hier oder im nächsten Post anzusprechen.

Bis dann!