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
- HTTP_Request - Provides an easy way to perform
HTTP requests, supports GET/POST/HEAD/TRACE/PUT/DELETE, Basic authentication,
Proxy, Proxy Authentication etc.
- Log - The Log framework provides an abstracted
logging system. It supports logging to console, file, syslog, SQL, mail,
and mcal targets. It also provides a subject - observer mechanism.
- Net_DNS - Resolver library used to communicate with a DNS
server
- Var_Dump - provides a simple way to dump a variable's
content in a nicer way than a classic var_dump().
- XML_Transformer - With the XML/Transformer
class one can easily bind PHP functionality to XML tags, thus transforming
the input XML tree into an output XML tree without the need for XSLT.
Beta
- Mail_Queue - Class for putting mails in queue and send them later
in background.
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:
- Automatic indentation of sources PHP by basing itself on a number
of given spaces
- New lines automatically added if needed
- include the options to return source corresponding to the styles C
or PEAR
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:
- Puts mails in temporary container waiting to be fed to MTA, put( $from,
$recipient, $hdrs, $body ); where $hdrs and $body are in mime format.
- Allows define after how many seconds Mail_Queue should send each mail.
- Can backup or delete mails after send.
- Provides checking for failed delivered mails, it probes to send them
during the next session until success or a given number of iterations. On
defeat a backup each mail will be done.
- Allow easly sending mails in background by crontab or in over way.
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.