by Alan Knowles alan_k@php.net

It's been another busy week in PEAR world, 2 stable releases and 5 beta releases, along with interesting discussion on SQL parses, builders and errors, standards,  PEAR in PLD Linux Distribution, a lot of new contributions and 3 new package proposals.


New Releases

Stable

PHPUnit a regression testing framework, Net_SMTP provides a simple interface to the SMTP (Mail transport) protocol,

Beta

Net_Dime which supports the Internet standard for Direct Internet Message Encapsulation, SOAP support for SOAP protocol and packages, DBA - provides a class based interface to DBM style databases (and can emulate it with files), PEAR_Frontend_Web which provides a web interface to the PEAR installer, and DB_DataObject which is a SQL builder and Data Modeling Layer.


PEAR-DEV traffic

DB::Sybase - Sybase Errors for the DB abstraction layer

Anotonio Carlos Venancio Junior popped up to volunteer to help complete the error messages in the Sybase back end

DBA - The Berkley DB wrapper and an SQL Parser

Brent Cook is finishing off the DBA (Berkley DB) interface layer that includes a lot of tools for making Flat file DBA's look a bit like SQL databases, as part of this he has built a pretty comprehensive SQL parser which may end up being useful in the future for other purposes... (note this package was originally DB_DBA)

SQL Builders and Added Features on PEAR:DB

A few people jumped in asking about SQL builders, or adding more features to PEAR::DB like getMany, which is similar to Pythons database abstraction class. It was pointed out that DB already has an autoExecute Method that can be used to build queries from arrays, and as an alternative the DB_DataObject package could also address the SQL building issue. Concerns where raised over the feature growth of the core PEAR::DB and that some methods like getMany may be better contained in a 'extended PEAR:DB' class.

Zend Engine 2 and Errors

A few things came up about the move towards PHP5 and Zend Engine 2, the new catch throw error reporting and the new reserved keyword 'delete', Stig has been testing ZE2 and the new raiseError method looks like it may be simplified considerably....., Sebastian Bergmann has started looking at adding assertSame() to PHP_Unit_Assert which supports object comparisons only in ZE2. On the delete front, It was noticed that DBA and DB_DataObject both used delete methods, this would break in PHP5. Brent changed the delete method to remove in DBA, Alan meanwhile started a brief discussion with Andi to see if delete could be allowed as a class method, and received a favorable response, pending a final decision when Andi gets back from his holiday.

Thanks to these people for contributing Miscellaneous fixes and spotting bugs

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

Weekly News - Publishing and Translations

Alexander Merz has been translating the weekly news into German, if you are interested in spending an hour a week, translating (and/or interpreting) the goings on in the pear community into other languages, please post a message to the pear-dev mailing list. The schedule is that the last draft of the English PWN should be completed on the Friday, and hopefully most translations completed by Monday/Tuesday the next week.. - announcements will be posted on Monday, again suggestions on where to post the announcements are welcome.

PLD Linux Distribution  includes PEAR

PLD Linux Distribution (www.pld.org.pl) will be distributing pear packages as rpms. Stig pointed out that the pear package manager was designed for embedding in other packaged systems, and that eventually there will only be 3 core packages bundled with the php source, the remaining will be installed via the pear installer.

Absolute vs Relative Paths

Lukas Smith brought up the idea of using dirname(__FILE__) . '/filename.php' rather than the current 'package/filename.php' in include and require statements. there was only one +1 for this, however Lukas later noted that it may cause difficulties if package manager wanted to do any automatic dependency resolution. It was noted that many people don't always use pear packages from the 'pear installed' directory, but put them in a subdirectory of their application and modify the include_path using ini_set().

Licenses and encoding

Brent Cook posted an interesting article on why he chose to use the LGPL, rather than the PHP License for the DBA package, if you are looking at the license for your package, it's an interesting analysis. In a related discussion it was asked if pear could be distributed as an encoded file (eg. the zend bytecode compiler) or similar. All the current licenses allowed this form of distribution (eg. of encoded, unmodified pear files).

XML_RPC and SOAP pluggable transport layers

James Flemmer contributed a patch to XML_RPC to allow plug-in transport layers - enabling transport by http, https, unix socket and carrier pigeon.. Shane  Caraveo suggested coordinating the effort of the SOAP module so they can share transport layers.

Standardizing connection closing.

Alexander Merz suggested standardizing on connect and disconnect for method names that deal with opening and closing connections, rather than the current mixture of quit,close,open etc. - this got +1



Proposed Packages:

User Authentication and Access Control Layer management

Markus wolff proposed pearifying his User and ACL management classes and adding to pear, and was interested in feedback.

Template_Flexy  - Yet Another Templating class

Alan (yes the PWN author), suggested adding his Template_Flexy class to pear, he receive got at least one +1, The class offers a very simple API, mixed with a class focused fast templating engine, based on wolframs simpletemplate.

PECL - smbc - C module for  Samba  client access

Jelmer Vernooij announced his C module which enables php to make calls using the Samba (Windows Networking) client library.


Development

Active on CVS this week has been ,DBA, Net_Dime, SOAP, DB, PEAR,  PECL::soap, Mail_Mime, HTML_QuickForm, File_Password, Date, MDB, XML_CSSML, PHP_Unit, Net_SMTP, PEAR_Frontend_Web,

Documentation

The DB_DataObject documentation has been added to the manual