by Alan Knowles alan_k@php.net (übersetzt von Alexander Merz alexmerz(at)php.net)

Mal wieder rege Tätigkeit in PEAR, 2 Stable- und 5 Beta-Releases. Eine interessante Diskussion über einen SQL-Parser, -Erzeugung, -Fehler und -Standards. PEAR-RPMs in der polnischen Linux-Distribution PLD. Und jede Menge neuer Code-Beiträge und drei Package-Vorschläge


New Releases

Stable

PHPUnit - eine Code-Testumgebung
Net_SMTP - eine API für einen einfachen Umgang mit dem STMP-Protokoll zum Versenden von E-Mails

Beta

Net_Dime - eine API für "Direct Internet Message Encapsulation"
verbesserter Support für das SOAP-Protokoll und -Packages
DBA - eine API für DBM-ähnliche Datenbanken, kann auch DBM-Datenbanken mit Hilfe von Datein emulieren
PEAR_Frontend_Web - ein Web-Interface für den PEAR-Installer
DB_DataObject - eine API für die Erzeugung von SQL-Statments und fungiert als "Data Modeling Layer".


PEAR-DEV Meldungen

DB::Sybase - Sybase Fehlermeldungen für die DB-Abstraktionsschicht

Anotonio Carlos Venancio Junior sucht noch Freiwillige, die ihn bei der Erarbeitungung von Fehlermeldungen für den Sybase-Treiber helfen

DBA - Berkley DB Wrapper und SQL Parser

Brent Cook hat das DBA (Berkley DB) Interface fast fertig. Das schliesst einen SQL-Parser für dateibasierte Datenbanken ein, um mit Hilfe von SQL auf diese zuzugreifen. Der Parser wird weiterentwickelt und wird zukünftig auch für andere Projekte genutzt. (Dieses Projekt hieß früher übrigens DB_DBA)

Zend Engine 2 und Errors

PHP5 und die Zend Engine 2 werfen in Form des Catch-Throw-Mechanismus und dem neuem reserviertem Schlüsselwort 'delete' ihre Schatten auch auf PEAR.

Stig testet die ZE2 und entwarf daraufhin eine vereinfachte Version von raiseError().

Sebastian Bergmann implementiert für PHP_Assert_Unit mit assertSame() derzeit eine Funktion zum Vergleich von Variablen. Der Vergleich von Objekten ist dabei nur unter der ZE2 möglich.

Hinsichtlich 'delete' gibt es hier Probleme bei DB_DBA und DB_DataObject, sie benutzen 'delete' bereits als Methodename. Brent ändert die Bezeichnung in DB_DBA zu 'remove'. Alan begann dazu eine Diskussion mit Andi auf der Zend-Engine2-Mailingliste, schliesslich könnte 'delete' als Name für Methoden erlaubt sein. Eine endgültige Entscheidung ist erst nach Ende von Andis Urlaub zu erwarten.

Danke an die folgenden Entwickler für Fixes und Bug-Meldungen

Dan Allen, James Flemmer, Paul Cooper, Marco Wittwer, Yavor Shahpsov

Weekly News - Herausgabe and Übersetzungen

Alexander Merz übersetzt derzeit die "Weekly News" ins Deutsche. Wenn Sie ebenfalls bereit sind, eine Stunde pro Woche für eine Übersetzung in ihre Sprache zu investieren oder Übersetzer/Schreiber bei ihrer Arbeit helfen möchten, dann schicken sie einfach eine Nachricht an die PEAR-Dev Mailingliste. Der Zeitplan für die Herausgabe sieht eine Ausgabe der endgültigen englischsprachigen "Weekly News" für Freitag vor. Übersetzungen sollten sollten möglichst bis Montag/Dienstag der darauffolgenden Woche vorliegen. Die Ankündigung einer neuen "Weekly News" erfolgt jeweils Montags. Wer Vorschläge zur Veröffentlichung der "Weekly News" auf anderen Webseiten hat, kann diese an die PEAR-Dev-Mailingliste schreiben.

PLD Linux Distribution inklusive PEAR

PLD Linux Distribution (www.pld.org.pl) stellt PEAR-Packages als RPMs bereit. Stig sagte, dass dies im Sinne des PEAR-Install-Konzeptes ist. Schliesslich wurde der PEAR-Package-Manager auch in Hinblick auf die Einbettung in andere Package-Systeme entwickelt. Er wies darauf hin, dass zukünftig nur die 3 PEAR-Core-Packages mit PHP selbst ausgeliefert werden, die übrigen müssen nachträglich installiert werden

Absolute vs. Relative Pfade

Lukas Smith brachte die Idee "dirname(__FILE__) . '/filename.php'", anstatt "'package/filename.php'" für include- und require-Befehle zu nutzen. Es gab dafür nur geringe Zustimmung. Er stellte fest, das es dabei u.U. zu Problemen mit dem PEAR-Installer hinsichtlich der automatischen Auflösung von Package-Abhängigkeiten kommen kann.

Es wurde angemerkt, dass viele Entwickler nicht unbedingt die PEAR-Packages unmittelbar aus dem Standard-PEAR-Verzeichniss nutzen, sondern aus applikationsspezifischen Verzeichnissen und daher mit der ini_set()-Funktion ihren Include-Path verbiegen.

Lizenzen und kompiliertes PHP

Brent Cook schrieb einen interessanten Artikel, warum er für DB_DBA die LGPL statt der PHP License wählte.
In einer ähnlichen Diskussion wurde gefragt, ob PEAR bzw. einzelne Komponenten in compilierter bzw. binärer Form vertrieben werden dürfen (z.B. erzeugt durch den Zend Bytecode Compiler). Alle derzeit in PEAR eingesetzen Lizenzen erlauben diese Form des Vertriebs (zumindest wenn der Quellcode nicht verändert wurden).

XML_RPC und SOAP - "pluggable transport layers"

James Flemmer schrieb einen Patch für XML_RPC, der zusätzliche Plug-ins für die Transportschicht erlaubt. So können Request über HTTP, HTTPS, Unix Sockets, Brieftauben, etc ... abgesendet werden. Shane Caraveo schlug vor die betreffende Arbeiten an der Plug-In-Schnittstelle für den Nachrichtentransport mit dem SOAP-Package zu koordinieren, damit doppelte Arbeit vermieden wird.

Standardbezeichnung für "Verbindung trennen".

Alexander Merz schlug vor die Methodennamen für jegliche Arten von Verbindungsaufbau und -abbau zu standarisieren. Damit soll der Wildwuchs von "quit", "close", "open", "connect" etc. beendet werden. Der Vorschlag wurde einhellig angenommen.


Package-Vorschläge:

Managment-Package für Benutzer-Authentifizierung und Zugriffs-Kontroll

Markus Wolff schlug vor, seine User and ACL management classes an PEAR anzupassen und hinzuzufügen. Er bat um entsprechendes Feedback.

Template_Flexy - Yet Another Templating class

Alan Knowles, schlug seine Template_Flexy- Klasse für PEAR vor. Er bekam einen gewissen Zuspruch. Die Klasse bietet eine einfache API kombiniert mit einer schnellen Templating-Engine, basierend auf Wolframs Kriesings "simpletemplate"-Klasse.

PECL-SMBC-C Modul für Samba client access

Jelmer Vernooij kündigte eine PHP-Extension für den Samba Client an. Damit ist die Samba-Client-API auch in PHP nutzbar.


Entwicklung

CVS-Aktivitäten fanden letzte Woche bei DBA, Net_Dime, SOAP, DB, PEAR, PECL::soap, Mail_Mime, HTML_QuickForm, File_Password, Date, MDB, XML_CSSML, PHP_Unit, Net_SMTP und PEAR_Frontend_Web statt.


Dokumentation

DB_DataObject wurde in die Dokumentation aufgenommen.