Die Standard PHP Library, kurz - in Anlehnung an C++ und dessen Standard Template Library (STL) - SPL genannt, von Marcus Börger wurde rechtzeitig vor dem PHP 5.0.0 Release-Prozess von PECL in die Standarddistribution befördert. Sie stellt einige Klassen und Schnittstellen zur Verfügung, die das Iteratormodell der Zend Engine 2 unterstützen und beispielsweise das Traversieren von Verzeichnissen erleichtern. So wird beispielsweise in Listing 1 ein (verschachtelter) Verzeichnisiterator zusammen mit einem Filteriterator verwendet, um in einer Liste von Verzeichnissen nach einer Datei mit gegebenem Dateinamen zu suchen.
Listing 1
Suche nach einer Datei in einer Menge von Verzeichnissen
<?php
class Dateifinder extends FilterIterator {
protected $dateiname;
function __construct($pfad, $dateiname) {
$this->dateiname = $dateiname;
parent::__construct(
new RecursiveIteratorIterator(
new RecursiveDirectoryIterator($pfad)
)
);
}
function accept() {
return !strcmp($this->current(), $this->dateiname);
}
}
foreach(new Dateifinder($pfad, $dateiname) as $datei) {
print $datei->getPathname() . "\n";
}
?>
Neue SOAP-Erweiterung
Dmitry Stogov, der sich vor seiner Anstellung bei Zend Technologies Ltd. mit der Bytecode-Caching Lösung TurckSoft MMCache einen Namen gemacht hatte, arbeitet an einer neuen PHP-Erweiterung für das Simple Object Access Protocol (SOAP). Gegenüber den in PHP geschriebenen SOAP-Implementierungen kann die in C implementierte Erweiterung vor allem in Bezug auf die Geschwindigkeit überzeugen. Die Erweiterung ist über das PHP Extension Community Library (PECL), dem Gegenstück zu PEAR für in C/C++ geschriebene PHP-Erweiterungen, zu beziehen.
Beliebige Bibliotheken aus PHP heraus nutzen
Mit dem Foreign Function Interface (FFI), vormals unter dem Codenamen ext/dangerous bekannt, hat PHP-Entwickler Wez Furlong eine Erweiterung für PHP 5 vorgestellt, die plattformübergreifend die Verwendung beliebiger Bibliotheken aus PHP heraus ermöglicht, ohne dass eine eigene PHP-Erweiterung für diese implementiert werden muss. Hierfür bedient sich die Erweiterung der Funktionalität der
libffi-Bibliothek der GNU Compiler Collection (GCC) und stellt diese dem PHP-Programmierer zur Verfügung. Dieser braucht nun lediglich eine Deklaration der fremden Funktion mit Hilfe der Interface Definition Language (IDL) anzugeben und schon kann diese verwendet werden:
<br></br><?php
// Erzeugung eines FFI-Kontextes mit Funktionsdeklaration
$ffi = new FFI(
"[lib='user32.dll'] int MessageBoxA(int handle, char *text, char *caption, int type);"
);
// Aufruf der deklarierten Funktion
$ffi->MessageBoxA(
0,
"Alle Dateien nicht löschen?",
"Nicht-Löschen bestätigen",
1
);
?>

Abb. 1: Von Listing 1 erzeugte Dialog-Box unter Windows
Neuigkeiten von MySQL
Zak Greant, bei MySQL AB zuständig für Open Source Advocacy, hat mit dem MySQL Open License Review einen Dialog zwischen MySQL AB und der MySQL-Nutzergemeinde initiiert, bei dem es um die Lizenzpolitik für MySQL geht. In Greants Weblog kann die Diskussion verfolgt werden.
Mit dem MySQL Administrator hat MySQL AB auf der LinuxWorld Expo in New York ein grafisches Administrationswerkzeug für seinen Open Source-Datenbankserver vorgestellt, die im 2. Quartal unter dem von MySQL AB gewohnten dualen Lizenzsystem (kostenlos unter der GNU Public License bzw. kommerzielle Lizenz) für Linux und Windows erscheinen soll.
Der MySQL Administrator ermöglicht Entwicklern und Datenbankadministratoren alle Operationen, die bislang nur über die Befehlszeilenebene möglich waren, über eine einheitliche graphische Benutzeroberfläche auszuführen: Konfiguration des Servers, Verwaltung der Benutzer und Überwachung der Datenbanken. Auch andere Arbeiten wie die Überwachung von Datenbankreplikationen, Backup und Restore und das Überprüfen von Protokollen können mit dem MySQL Administrator erledigt werden.
Eine Vorführung der Software durch Michael Zinner, der für die Windows-Version verantwortlich zeichnet, hinterließ einen sehr positiven Eindruck und lässt auf ein durchweg gelungenes Produkt hoffen. Zumal sich Zinner bereits mit dem DBDesigner 4, einer gelungenen Open Source-Lösung für Design und Modellierung von Datenbankanwendungen, einen Namen gemacht hat.
Sebastian Bergmann, Jahrgang 1978, lebt in Siegburg und studiert Informatik an der Universität Bonn. In seiner Freizeit beschäftigt er sich mit der Entwicklung freier Software. Er ist Mitglied des PHP-Entwicklerteams und Autor bekannter Open Source PHP Anwendungen wie PHPUnit und phpOpenTracker. In seiner Kolumne Dev.Talk berichtet er für die Leser des PHP Magazins über die aktuellen Entwicklungen rund um PHP.