Interfaces und Class Type Hints. Verbesserte Apache 2 Unterstützung. lighttpd

Dev.Talk
Kommentare

Interfaces und Class Type Hints
Die Palette der neuen Features der Zend Engine 2, der Compiler- und Executor-Komponente des kommenden PHP 5, ist in den vergangenen Wochen um Schnittstellen (englisch:

Interfaces und Class Type Hints

Die Palette der neuen Features der Zend Engine 2, der Compiler- und Executor-Komponente des kommenden PHP 5, ist in den vergangenen Wochen um Schnittstellen (englisch: Interfaces) und so genannte Class Type Hints erweitert worden.

Eine Schnittstelle ist eine vollständig abstrakte Klasse, die nur Namen und die Signaturen der enthaltenen Methoden vereinbart. Schnittstellen werden genutzt, um einer Klasse unterschiedliche Rollen oder Sichten zuzuordnen. Eine Klasse kann eine beliebige Anzahl an Schnittstellen über das Schlüsselwort implements implementieren (siehe Listing 1).

Listing 1

Da die Klasse aClass aus Listing 1 die Schnittstellen anInterface und anotherInterface implementiert, können Objekte dieser Klasse beispielsweise an Methoden übergeben werden, die als Parameter ein Objekt vom Typ aClass, anInterface oder anotherInterface erwarten: all diese Typanforderungen kann ein solches Objekt erfüllen.

Die Forderungen an den Typ eines Parameters können durch die Angabe eines Klassen- oder Schnittstellennamens in der Signatur der Methode erfolgen. Im Gegensatz zu statisch getypten Programmiersprachen erfolgt diese Typprüfung jedoch nicht zum Zeitpunkt der Kompilierung, sondern erst zur Laufzeit. Diese so genannten Class Type Hints ersparen dem Programmierer Schreibarbeit, wie die beiden folgenden Beispiele zeigen. Listing 2 zeigt hierbei eine Typprüfung mit Class Type Hints, Listing 3 zeigt eine Typprüfung mit dem instanceof-Operator.

Listing 2

Für das PHP 4.3.2 Release, das unter anderem über 60 Bugfixes sowie Verbesserungen der Kompatibilität mit 64 Bit-Systemen mit sich bringt, wurde die Unterstützung für den Apache 2 Webserver überarbeitet.

Da die Zend Engine 1, die Compiler- und Executor-Komponente von PHP 4, als Eingabe nur eine Datei, aber keinen Stream, akzeptiert, wurde das Apache 2 SAPI-Modul von der bisherigen Implementierung als Filter auf eine Umsetzung als Handler umgestellt. Das neue Modul arbeitet wesentlich stabiler und performanter als sein Vorgänger.

lighttpd

Mit dem lighttpd-Webserver von Jan Kneschke hat ein weiterer HTTP-Daemon das Licht der Welt erblickt, der für die schnelle Auslieferung vieler kleiner Dateien, wie sie beispielsweise bei Banner- und Chatsystemen anfallen, gedacht ist. Zum Funktionsumfang gehört unter anderem eine lastbalancierende FastCGI-Schnittstelle, über die ein Webserver mehrere PHP-Arbeiterprozesse bedient. Im Vergleich zum thttpd-Daemon, der bislang die Nische der kleinen und schnellen Webserver füllte und unter anderem zusammen mit Sascha Schumanns IRCG zum Einsatz kommt, macht der lighttpd-Webserver einen guten Eindruck: er ist nicht nur schneller als ein Apache mit mod_php, sondern auch schneller als der thttpd. lighttpd kann unter Linux, FreeBSD, NetBSD, Solaris und Windows (cygwin) betrieben werden. Sebastian Bergmann studiert Informatik in Bonn und ist aktives Mitglied der internationalen PHP-Entwicklergemeinde. In seiner Kolumne Dev.Talk berichtet er für die Leser des PHP Magazins über die aktuellen Entwicklungen rund um PHP.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -