by  Pierre-Alain Joye (paj@pearfr.org)

The mailing list has been very active during the past week, a sign to the return of an active cadence of updates, adds or fixes on pear. The subjects were various, from the classic 'Naming convention & coding standards' to the automatic translation system or peardoc. Sebastian Bergmann and Kristian Köhntopp have worked intensively on XML_Transformer, that will make us happy to see a new and very good stable release.
This week has seen not less than four stable releases, that is itself a very good news, and one beta.


New Releases

Stable

Beta


PEAR-DEV headlines

PEAR website and packages managers

The pearweb team is actually working intensively to fix the latest details, features or problems in the pear website. To help them to provide a tool as good and stable as possible, they need feedbacks from endusers as well as pear developers. If you use the pear website or one of the available package manager, we highly recommend to give them feedbacks about the problems you meet or your features requests using the well known mailing-lists or the php bugs site. We thank you in advance for your contributions.

PS: To access the beta website, you need to activate the 'devme' cookie, follow this link to do it : http://pear.php.net/?devme

MDB - Descriptions, feedback and contributions

During this week, I've seen there are many people that do not know or have wrong ideas of MDB goals and functionalities. That's why I asked the author to shortly explain the 'what&how' of the MDB package :

** Difference between PEAR DB and PEAR MDB
Both packages provide a very similar common API to all supported RDBMS (so PEAR DB users should feel right at home). However, PEAR MDB goes much further than PEAR DB in terms of RDBMS abstraction. Beyond sequence emulation it also provides datatype abstraction (for example not all RDBMS store timestamps the same way) as well as index, table and database creation, altering and deleting. It also has RDBMS independant schema management. This means you do not have to create different sql schemas for each RDBMS you want to support. The MDB manager can even alter a database if the underlying schema file has been modified. PEAR MDB benefits from the experience that was gained from PEAR DB development and is therefore atleast as fast as PEAR DB.

** Disclaimer
Currently PEAR MDB does not support as many drivers as PEAR DB does. Because of this and the fact that PEAR MDB is newer it should also not be considered to be as stable as PEAR DB. This situation should be remedied over the course of this fall. Please see the Readme.txt for further details.

Besides this note, Lukas lacks cruelly returns of experiments or feedback, being this an essential point to arrive quickly in one stable and successful tools. Lukas is looking for persons who want to contribute to MDB by the creation of new drivers, at present the priority needs are SqlServer and Oracle, you can contact Lukas Smith via the peardev list or from the  MDB's page.

PEAR Documentation, japanese translation

Yasuo Ohgaki  started this week the translation of the  PEAR documentaion in Japanese. We greet this usefull initiative.

Pear Weekly News relayed by Nexen newsletter

Thanks to Damien Seguy who added the PEAR weelky news to the nexen newsletter.By the way, you are free (keeping the pear copyright) to spread these news in your lists or respective sites, for any questions, you can contact us on the peardev mailing - list.

PEAR-DEV traffic

PEAR Licence FAQ available

The list of recommended licences in PEAR is now available in the PEAR FAQ.

PHP source code beautifier

Jens Bierkandt proposed of added his(her) module of shaping of sources to PEAR. Who has not ever 'lost' hours to reformat a code illible? This module could be the solution, in here is the main features:
It(he) should be available quickly on the cvs of pear.

Inline::C in php ?

George Schlossnagle suggested supplying the possibility of adding the well known feature of the perl world: Inline:: C. Indeed,  without reinventing inevitably the wheel. The purpose being to be able to use it in this way:
<?pseudocode
$function_def = <<<EOF
php_function(times){
    int i,j;
    return if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, &i,&j) = FAILURE)
RETURN_LONG(i*j);
}
EOF
Inline_C($function_def);
times(2,2);
?>
Inline_C would take the block of C code, adds to it the necessary information to make a module, after compilation the binary would be put in cache and loaded via dl ().

Naming convention and RFC

 Mika Tuupola suggested to add some recommendations about the use of names of constructors and factory ( the thread).

I18N and translation system

Wojciech Zieliñski reminded his proposition of package of machine translation, what raised the necessity of this type of modules. At present Wolgang Kriesing already works on this subject via the package I18N, available at the moment only on PEAR's cvs. If machine translations or internalisation do parties of your goals or needs or if you wish to help them, you can contact them via peardev.

In the same manner, James E. Flemer suggested a module of a web interface allowing to translators to create / maintain gettext catalogs (announcement).

Bugs and Fixes

Thanks to these people for spotting bugs and sending fixes: Nigel Armstrong, Adam Morton, Rob, Richard Heyes.

New and Proposed Packages

Mail_Queue

Often some actions on websites like sending many mails which could be time-consuming. With this class you can forgot about annoying awaiting while all these mails will be send via eg: smtp or qmail.
Mail_Queue performs 5 tasks:

DB_Grid

Yavor Shahpasov suggested his module that provide dynamic binding betwin a database (table or sql) and a table (html or plain text).

File_Repository

Mike McCallister proposed his files repository module, taking all its importance on big volumes of files. Indeed, we noticed that the performances of the systems of traditional files quickly fall as soon as the quantity of files being in the same folder is important. This module thus proposes as a viable and very usefill alternative. The features are very interesting, you can consult them in detail in the message of announcement.

Spread API

George Schlossnagle suggested his intention to add his spread php interface to PECL. Spread is a toolkit that provides a high performance messaging service that is resilient to faults across external or internal networks, further informations are available on the Spread website. The PHP interface is currently available at : http://www.omniti.com/~george/php_spread/php_spread-1.1.tar.gz.

Audio extension

Tony leake suggested to add his audio extension to PECL. This will allow php to be used to write advanced audio recording/processing apps such as multitrack recorders. In the future I will write higher level functions to make the ecasound syntax simpler. Furher informations are available on:  http://www.webwise-data.co.uk/php_audio/php_audio_extension.html.


Development

Active on CVS this week has been:  Log, LiveUser, Python, XML_Transformer, HTTP_Request, Documentation japonaise, DB_DataObject, DBA, HTML_QuickForm, Net_Ping, Tree, Net_DNS, Net_Whois, Crypt_RC4, HTTP_WebDav, MDB, peardoc/FAQ, Mail_Queue.

Documentation updates

The changes and fixes are now available.