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<?phpinterface anInterface {public function doSomething();}interface anotherInterface {public function doSomethingElse();}class aClass implements anInterface, anotherInterface {public function doSomething() {// ...}public function doSomethingElse() {// ...}}?>
<?phpclass Vector {function add(Vector $vector) {// ...}}?>
<?phpclass Vector {function add($vector) {if (!($vector instanceof Vector)) {die('Parameter muss vom Typ Vector sein.');}// ...}}?>
Verbesserte Apache 2-Unterstützung
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.




