by
Mika Tuupola (tuupola@appelsiini.net), Pierre-Alain Joye (paj@pearfr.org)
Afin de célébrer la sortie de PEAR en version stable et comme
installeur par défaut de PHP 4.3.0, les Weekly News reviennent.
Comme préface à cette édition, vous trouverez une interview
de Stig S. Bakken, le fondateur du projet PEAR.
Cette semaine inclut des details sur le système de votes pour les
propositions de packages, un tutorial PEAR pour Mac OS X, de nouveaux templates
pour la documentation, et l'absence de PEAR dans la distribution binaires pour
Win32.
UNE INTERVIEW DE STIG BAKKEN
par Pierre-Alain Joye (paj@pearfr.org)
Who's Stig Bakken ?
Stig (30) a travaillé avec Unix et les technoligies Web durant les 10
dernières années. Depuis 1999, il travaille comme ingénieur
Software Senior pour Search&Transfer (FAST) in Trondheim, Norvège. FAST est
le principal concurent de Google dans le marché OEM des moteurs de recherche,
et Stig est le responsable technique pour les produits de recherche multimedias.
Voir www.alltheweb.com (écrit
en PHP) pour une démonstration.
Qu'est ce que PEAR ?
PEAR est un sous-projet de PHP qui tend à fournir plusieurs choses :
Une libraire de code PHP et d'extensions de haute qualité
et réutilisable
Des directives de codages aidant à créer des composants avec
APIs consistentes.
Un framework de packaging, de distribution et d'installation pour ces
composants
L'acronyme signifie "PHP Extension and Application Repository". Nous avons
Nous avons bien sûre créer l'acronyme avans sa signification.
Qu'est-ce que PECL ?
PECL (the PHP Extension Code Library) est un sous-ensemble de PEAR
pour des extensions traditionnelles de PHP écrites en C ou C++.
Quelles sont les relations entre PHP et PEAR/PECL, nous avons vu beaucoup,
d'extensions migrer de PHP vers PECL (et il semble que d'autres vont suivre
dans le futur) ?
De plus en plus d'extensions bougent vers PECL, et avant la sortie de PHP 5,
la plupart des extensions auront été marinées (PECL'ed). Ceci
est la 1ère étape du changement dans la gestion de projet pour PHP.
De futurs versions de PHP vont encore inclure beaucoup d'extensions, elles vont étre
importées; durant le processus de release de PHP et inclut dans les archives
de release.
La raison pour laquelle nous faisons cela est de rendre le process de release
gérable. Actuellement, une release PHP prend plusieurs mois. En important
les releases stable des extensions PECL, nous allons avoir moins d'inconnus
nécessitant des tests durant le processus QA de PHP, simplement parce que les
extension de PECL ont déjà effectué leurs propres processus QA.
Si tout se déroule bien, celà ramènera le processus
de release de PHP a des semaines, plutôt que des mois, et augmentera
la qualité générale des extensions incluses dans PHP.
Je voudrais souligner que ce processus de marinage ne signifie pas
que les utilisateurs n'auront pas d'extensions incluses dans PHP5.
En outre, si des extensions sont compilées de manière partagé
(pas compilées directement dans PHP, mais comme libraire dynamique), celà
rendra possible la mise à jour individuelle des extensions,
sans mettre à jour PHP.
Quelles sont les différences entre le coeur de PEAR (le gestionnaire
de package, les modules principaux) et le reste de PEAR ?
Les packages "core" incluent dans PHP sont de deux types: ceux requis par
l'installeur, et un ensemble de modules de haute qualité
et considés d'intérêts communs. Le dernier ensemble
de modules est le début de ce qui, si tout va bien, deviendra le
"PHP Foundation Classes" (PFC).
Est-ce que le gestionnaire de packages et la définition des
packages peut être utilisés par n'importe quels
dévelopeurs dans leurs projets, privés ou commerciaux ?
Toute personne peut mettre en place sa propre copie de pear.php.net et
l'utiliser pour distribuer des composants PHP maison. Il y a déjà
quelques projets qui commencent à utiliser les outils PEAR pour leurs
propres besoins.
Quelles sont les prochaines grandes tâches pour PEAR ?
La première de toute est le support Windows de l'installeur doit
être solide. En raison des périodes de fêtes, la version
windows de PHP 4.3.0 a été livrée sans PEAR. 4.3.1 va y
remédier.
Nous devons obtenir les releases binaires Win32 des packages PECL.
Ensuite, nous avons besoin de mettre en service une infrastructure portable
et fonctionnelle de signature de package, ainsi les utilisateurs pourront
se sentir confiant lors de l'installation de releases binaires.
C'est beacoup plus difficile pour PEAR que pour, disons, RPM, l'installeur
PEAR fonctionnant sur une myriade de plateforme et de configurations PHP.
Et il reste beaucoup de travaille devant nous pour la création du pland
de migration PHP 5.
De plus en plus de personnes sont impliquées dans la communautée PEAR,
en ajoutant de nouvelles fonctionnalitées ou des modules alternatifs concurents,
Comment gérez-vous celà ?
Nous avons un système de votes sur la mailing list pear-dev, où les
personnes collectent des votes pour un package spéfique. Habituellement, les
packages ne sont pas rejetés, même si ils ont des fonctionnalitées
proches d'autres packages. Mais depuis que nous avons une seule mailing list pour
les dévelopeurs PEAR, des auteurs de packages concurents se retrouvent
rapidement et trouve une bonne solution de leurs propres chefs. Mon rôle est de
pousser du coude la communauté dans la bonne direction, de temps en temps.
Traffique de PEAR-DEV
Qui peut voter ?
Cette question intéressante posée sur la lise demande si
il faut avoir un compte CVS pour voter pour ou contre une proposition
de package. Des Instructions
sur comment contribuer à PEAR. Depuis que vous pouvez être un
dévelopeur sans avoir de compte CVS, chacun sur la liste est qualifié
pour voter.
Tutorial PEAR sur Mac OS X
Pierre-Alain Joye a signalé l'existence d'un bon tutorial sur comment installer PEAR
sur Mac OS X. Il semble vraiment complet, commencant par le travail de fond en installant
php CLI et renseigner correctement les variables d'environnement. Vous trouverez aussi
des instructions comment: install et utiliser l'installeur PEAR, générer les
documentation dévelopeur depuis phpdoc et, non des moindres, comment utiliser
les classes PEAR dans vos applications.
Lien supplémentaire: PHP and Mac
Le tutoriel peut aussi être utilisé comme un guide d'installation de PEAR
sur des unix traditionnels, la seule différence étant que vous
désirez certainement compiler PHP CLI par vous-même.
Ce qui nous manque est un tutoriel similaire pour windows.
PEAR phpdoc template
Christian Dickmann a annoncé que ses
templates PEAR
pour PHPDoc sont presque terminés et attend quelques retours et commentaires.
Les templates eux-mêmes rendent vraiment bien. Des fonctionnalitées
additionnelles, comme de générer des documentations depuis chaque package
PEAR, visualiser ou télécharger les documents, ou uploader un package
de dévelopement afin de visualiser le résultat avec cette mise en page.
Les templates sont supposés être utilisés avec :
phpDocumentor.
Erreur dans la distribution Windows
Afin d'ajouter encore plus de confusion pour les utilisateurs Windows avec les
problèmes d'installation de PEAR, l'installeur n'a pas été
inclut dans la distribution binaire Windows. Cette erreur va être corrigée
avec la version 4.3.1 .
Bugs and Fixes
Thanks to these people for spotting and fixing some bugs:
Lorenzo Alberton, Tobias Schlitt, Michele Manzato, Markus Wolff
Nouveau package et propositions
HTTP_Header, HTTP_Header_Cache
Wolfram Kriesing propose de nouveaux packages implementant
des métodes courantes pour les headers ainsi que pour
la gestion des headers cache.
DB_Abstract
Wolfram Kriesing propose aussi un constructeur et exécuteur de requêtes
basé sur DB. Ce package a quelques points similaires avec DB_DataObject mais est
focalisé sur la construction de la requête.
Enterprise A&A
Tony Bibbs suggéra un nouveau package d'authentificatione et de permission.
Après quelques discussions, la possibilité de fusionner son package avec
LiveUser emergeât.
GTK_VarDump
Alan Knowles propose une classe de visualtion d'un VarDump dans une fenêtre GTK.
Development
Active on CVS this week has been: Net_SMTP, DBA_Relational,
PECL::session_pgsql, PHPUnit, DB, MDB, XML_Transformer, HTML_QuickForm,
PECL::soap, Net_SmartIRC, Cache_Lite, HTML_Template_Xipe, PECL::tclink,
Net_SMTP, Mail, Perm_LiveUser, I18N, Spreadsheet_Excel_Writer,
Pager_Sliding, XML_XPath, Net_UserAgent, Image_GIS, File_HtAccess,
HTML_TreeMenu, DB_QueryTool, HTTP_Header