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 endDBA - 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