Große Geschäftigkeit im PEAR - trotz der Sommerferien - mit 10 'stable'-Releases, 4 'beta'-Releases, und Diskussion angefangen vom PEAR in Gentoo über neue Kategorien, vom neue Manual zum 'powered by PEAR'-Icon.
Log - ein Logging-Framework auf der Basis von Dateien/Syslog/SQL/etc.
HTML_Table - ein Package um HTML-Tabellen zu erzeugen
HTML_TreeMenu für die Erzeugung einer baum-ähnlichen Navigation auf HTML-Basis
Net_POP3 für den Zugriff auf POP3 Mailboxen
Net_Sieve für Kommunikation mit anderen Servern über das SIEVE-Protokoll
Net_URL für das Auswerten von URLs
Pager für eine Karteireiter-ähnliche Navigation
Mail_Mime für den Umgang mir MIME-Nachrichten
HTTP_Request für das Senden an und Empfangen von Daten eines Server
File_SearchReplace für Datei-übergreifendes Finden und Ersetzen von Zeichenketten
Mail zum Senden von EMails
bcompiler - ein PHP-Bytecode-Compiler (derzeit nur für Klassen)
PEAR_Frontend_Gtk - das Desktop-Interface für den PEAR-Installer (Start mit 'pear -G', benötigt
PHP-Gtk)
HTML_Javascript - Mittel für den Umgang mit Javascript
PHPDoc - Tool zur Erzeugung einer API-Documentation aus dem Source-Code
Gentoo fügten einige PEAR-Packages ihrem 'portage'-Verzeichniss hinzu. Portage ist das Gentoo-eigene Installationsprogamm. Eine Liste der verfügbaren Packages befindet sich auf Gentoo dev-php.
Im Zusammenhang mit der bcompiler-Einführung wurde die Kategorie 'PHP' vorgeschlagen. Sie würde u.a. die Packages PHPDoc, PHPUnit und bcompiler beinhalten. Diese Packages beschäftigen sich mit dem Parsen, Compiling etc. von PHP. Der Vorschlag wurde allgemein angenommen.
Der zweiter Vorschlag ist die Einführung der Kategorie 'Template' z.B für die (künftigen) Packages HTML_Template_IT, Template_Flexy und Template_Smart. Während der betreffenden Diskussion wurde herausgestellt, dass die genannten Template-Klassen auch für andere Dateiarten (z.B. XML, EMails, RTF) geeignet sind. Der Vorschlag erhielt drei Pro- und eine Contra-Stimmen.
Ein Großteil der Übersetzter beschwerten sich über das durch Mozilla automatisch erzeugte HTML in den 'Weekly News'. Es erschwert die Übersetzung bei Benutzung von reinen Texteditoren. Alan wird zukünftig den erzeugten Code vor dem Commit aufräumen.
Zusätzliche Übersetzungen gibt es jetzt in brasilianischem Portugiesich (Antônio Carlos Venâncio Júnio) und Polnisch (Robert Janeczek). Die Übersetzungen sollen künftig durch die Gettext-Extension von PHP vereinfacht werden. Im Moment wird noch auf eine Reaktion des Adminstrators des PHP-Webservers hinsichtlich der Installation gewartet .
Demnächst wird Smarty als PEAR Package verfügbar sein, auch wenn es nicht unmittelbar zu PEAR gehört. Es sind nur wenige Änderungen notwendig, um eine problemlose Installation zu gewährleisten.
Stig setzte seine Bemühungen fort, für den Betrieb des PEAR-Installer nicht notwendige Teile aus der PHP-Distribution herauszunehmen. Net_SMTP, Net_Curl und Mail befinden sich nun im PEAR-CVS-Verzeichniss. Allein die Package-Dateien werden mit PHP 4.3 zum Zweck der Qualtiätsanalyse ausgeliefert.
Während einer Diskussion, wurde gefragt, wie man die Datenbank unter den PEAR Datenbank-Schicht wechselt. Nach einigen Diskussionen wurde folgendes genannt:
$db->disconnect(); $db = DB::connect($new_dsn);
Das ist der empfohlene Weg, solange nicht alle Datenbank-Treiber unter PHP die Umschaltung zwischen Datenbanken erlauben. Wer eine Lösung, sprich Patch, für dieses Problem hat, ist wilkommen. Sie sollte berücksichtigen, das eben nicht alle Datenbank-Extensions dieses beherrschen. Abhängig von der Datenbank muss der Treiber dann per Befehl oder eben per disconnect() - connect() die Datenbank wechseln. Lukas bemerkte, dass MDB damit keine Probleme hätte.
Tomas lies in einer ähnlichen Diskussion durchblicken, dass die Unterstützung von ODBC-Cursor geplant sind. Ein entsprechender DSN:
odbc://user:pass@ds?cursor_type=SQL_CUR_USE_ODBC
Martin Jansen ergänzte das PEAR-Manual um eine Einführung für PEAR-Entwickler. Es ist hilfreich bei der Lösung typischer Anfangsprobleme, z.B.: Wie man eine korrekte package.xml erzeugt - oder warum es einen "Coding Standard" gibt.
Währenddessen beendete Alexander Merz seine Überarbeitung des PEAR-Manuals. Es ist nun wesentlich modularer und einfacher zu erweitern. Das 'neue' Manual wird hoffentlich in Kürze online verfügbar sein.
Richard Wall sandte einen Patch für DB_Pager::getData(), damit es eine konstante Zahl zurückzugibt. Derzeit folgt es der Google-Methode - was einige Entwickler irritierte. Zukünftig wird es eine 'Entwickler-freundlichere' Version zusätzlich zu derzeitigen Funktion geben.
Bertand Mansion stellte fest, dass der Config_DB-Container des Config-Packages den DSN (enthält u.a. Datenbank-Benutzername und Passwort) einer Datenbank-Verbindung ausgibt. Entwickler sollten also darauf achten, in welchen Situation die unmittelbare Ausgabe von sicherheitsrelevanten Daten in Fehlermeldungen sinnvoll und notwendig ist. Ansonsten kann es zu erheblichen Sicherheitsproblemen kommen.
Wer die PHP-Dev-Mailingliste nicht verfolgt: es gab zwei interesante Artikel über die Übergabe 'by reference'. Im Gegensatz zu 'C', ist die Übergabe per Referenz bei Zeichenketten und Integer-Zahlen langsamer als die Übergabe des direkten Wertes. Es ist also Vorsicht angesagt, wenn man diese Möglichkeit in geschwindigkeitskritischen Packages verwenden will. Siehe auch [http://www.zend.com/zend/art/ref-count.php] und [http://phplens.com/lens/php-book/optimizing-debugging-php.php]
OpenOffice wird zukünftig die unmittelbare Speicherung in DocBook unterstützen. Abiword kann Daten nach DocBook konvertieren. Unabhängig davon sind Emacs, Vim oder jeder andere Texteditor - oder XMetal für Windows-Nutzer - die bessere Wahl für Manual-Autoren. In diesem Zusammenhang empfiehlt sich auch ein Blick in das "phpdoc how-to" in http://cvs.php.net/co.php/phpdoc/howto/howto.html.tar.gz
Es wurde nach einem verfügbarem Snapshot aller PEAR-Packages gefragt. Solches wird es seiten der PEAR-Community nicht geben - in Anbetracht der zu erwartenden Größe eines solchen Snapshots. Wenn jemand einen Service anbieten möchte, ist er willkommen. Unabhängig davon wird es aber ein
pear upgrade-allgeben, mit dem alle installierten Packages auf den neusten Stand gebracht werden können.
Danke an Paweł Gołaszewski, Matt Allen, James E. Flemer, Tal Peer und Dave Clark für Bug-Meldungen und Korrekturen.
Marty Fabien schlug eine auf schnelle Ausführung bedachte Version der existierenden Cache-Klasse - plus Stabilität bei NFS und Block-Caching. Nach großem Tobowahu mit Vorschlägen wie 'Cache_Fast', 'Cache_Simple', 'Cache_HighTraffic', 'Cache_RoadRunner', 'Cache_SpeedyGonzales' und 'Cache_BeepBeep') entschloß man sich für 'Cache_Lite'. Sucht man allerdings nach dem Turbo-Booster für seine Webseite, so sind der Zend Cache, PHPAcelerator und APC wohl die sinnvollere Wahl.