Teil von  SELFPHP   Teil von  Praxisbuch  Teil von  Neuerungen in PHP 5  Teil von  OOP und PHP 5
Professional CronJob-Service

Suche

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: SELFPHP Forum ::

Fragen rund um die Themen PHP?
In über 130.000 Beiträgen finden Sie sicher die passende Antwort!  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 
 
Interface – Objektschnittstellen: Seite 1

SELFPHP ist Shopware Solution Partner
Shopware ist ein vielfach ausgezeichnetes Onlineshop-System der shopware AG, das auf PHP. Zend Framework und SQL basiert.
SELFPHP unterstützt Sie als Shopware Solution Partner bei der Konzeption, Programmierung und Realisierung Ihres Onlineshops und passt Shopware bei Bedarf an Ihre Unternehmensbedürfnisse an. Weitere Informationen



Vor allem bei umfangreichen PHP-Anwendungen kommt es äußerst selten vor, dass lediglich ein einzelner Entwickler daran arbeitet. Angenommen, Sie gehören zu einem Team von Entwicklern, bei dem jeder einzelne Entwickler an einem separaten Teil – d. h. einer anderen Klasse – einer umfangreicheren PHP-Anwendung arbeitet. Die meisten dieser Klassen stehen miteinander nicht in Beziehung. Dennoch müssen die verschiedenen Klassen miteinander kommunizieren können. Sie müssen also eine Schnittstelle oder ein Kommunikationsprotokoll definieren, das alle Klassen befolgen.

Eine Möglichkeit wäre, dass Sie eine Kommunikationsklasse erstellen, welche sämtliche Methoden definiert, und dann jede einzelne Klasse dieser übergeordneten Klasse erweitern oder von ihr erben lassen. Da die Anwendung jedoch aus unverwandten Klassen besteht, ist es nicht sinnvoll, sämtliche Klassen in eine gemeinsame Klassenhierarchie zu pressen. Die bessere Lösung ist das Erstellen einer Schnittstelle, in der die Methoden deklariert werden, die diese Klassen zur Kommunikation verwenden. Anschließend können Sie jede Klasse diese Methoden implementieren lassen, d. h. ihre jeweils eigenen Definitionen zur Verfügung stellen. Für eine erfolgreiche Programmierung sind in der Regel keine Schnittstellen erforderlich. Werden Schnittstellen sinnvoll eingesetzt, kann das Design Ihrer Anwendung effektiver, skalierbarer und leichter zu pflegen sein.


Schnittstellen – Definition

In der objektorientierten Programmierung sind Schnittstellen (engl. interfaces)  mit Klassen vergleichbar, deren Methoden deklariert wurden, die aber sonst nichts anderes »tun«. Eine Schnittstelle setzt sich somit aus »leeren« Methoden zusammen. Eine andere Klasse kann die von der Schnittstelle deklarierten Methoden implementieren. Objektschnittstellen können auch als Sonderfälle von abstrakten Klassen gelten. Schnittstellen werden mit dem Schlüsselwort interface, gefolgt von einem Namen, deklariert und enthalten per Definition nur abstrakte Methoden. Auf die explizite Angabe von abstract bei Methoden kann verzichtet werden. Im Unterschied zu abstrakten Klassen werden Schnittstellen mit dem Schlüsselwort implements von einer Klasse implementiert.


Schnittstellen erstellen

Schnittstellen werden auf dieselbe Art und Weise erstellt wie Klassen. Schnittstellen deklarieren Sie mit dem Schlüsselwort interface. Darauf folgen der Name der Schnittstelle und dann die geschweiften Klammern, die den Körper der Schnittstelle definieren.

Innerhalb von Schnittstellen dürfen keine Eigenschaften enthalten sein, und von sämtlichen Methoden darf nur der »Kopf« geschrieben werden, direkt abgeschlossen mit einem Semikolon, statt der geschweiften Klammern.

Bei der Implementierung wird wie bei der Klassenvererbung vorgegangen, anstatt extends kommt jedoch das Schlüsselwort implements zum Einsatz.

<?php

interface einInterface {
  public function machWas();
}

interface anderesInterface {
  public function machWasAnderes();
}

class MeineKlasse implements einInterface, anderesInterface {
  public function machWas() {
    // ...
  }

  public function machWasAnderes() {
    // ...
  }
}

?>

Wie Sie sehen, kann eine Klasse eine beliebige Anzahl an Schnittstellen über das Schlüsselwort implements implementieren.

Da die Klasse MeineKlasse die Schnittstellen einInterface und anderesInterface implementiert, können Objekte dieser Klasse beispielsweise an Methoden übergeben werden, die als Parameter ein Objekt vom Typ MeineKlasse, einInterface oder anderesInterface erwarten, sämtliche dieser Typanforderungen kann ein solches Objekt erfüllen.

Abschließend habe ich noch ein vertiefendes praktisches Beispiel für Sie.



Abstraktion von Klassen und Methoden
 




:: Premium-Partner ::

Webhosting/Serverlösungen

Pixel X weitere Premium-Partner
 

:: SELFPHP Sponsor ::

DM Solutions e.K. weitere Sponsoren
 


:: Buchempfehlung ::

Handbuch der Java-Programmierung

Handbuch der Java-Programmierung zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Webhosting/Serverlösungen

Suchen Sie den für Sie passenden IT-Dienstleister für Ihr Webhosting-Paket oder Ihre Serverlösung?

Sie sind nur ein paar Klicks davon entfernt!


 

Ausgewählter Tipp im Bereich PHP-Skripte


Verzeichnis rekursiv kopieren

Weitere interessante Beispiele aus dem SELFPHP Kochbuch finden Sie im Bereich PHP-Skripte
 

SELFPHP Code Snippet


Timestamp in Gleitkommazahl umrechnen

Weitere interessante Code Snippets finden Sie auf SELFPHP im Bereich PHP Code Snippets
 
© 2001-2017 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt
© 2005-2017 E-Mail PHP5 Praxisbuch - Matthias Kannengiesser, m.kannengiesser@selfphp.de