Initié par Stig S. Bakken, un des contributeurs majeurs du PHP Group, le projet PEAR a pour but principal de devenir un entrepôt officiel pour des extensions et scripts PHP de référence.
PEAR est divisé en plusieurs parties ayant des buts complémentaires :
Une distinction est en outre en train de se mettre en place entre différents types de composants développés en PHP, suivant qu’il s’agit de simples classes, d’applications complètes, ou de composant destinés à PHP-GTK [3].
PEAR est donc un projet ambitieux, et sa cohérence a tout d’abord nécessité la définition de standards de codage qui obligent tous les développeurs à écrire leur code de la même manière pour qu’il soit lisible et réutilisable par tous. Ces standards inclus en outre la norme d’écriture de commentaires dans le code PHPDoc [4], qui permet de générer automatiquement les documentations d’API des composants.
Un programme permettant de télécharger et installer PEAR et ses différents composants, appelé PEAR installer, est inclus dans la distribution officielle de PHP. Ce programme fonctionne de manière très similaire à l’outil apt de la distribution Debian GNU/Linux.
L’un des composants les plus populaires de PEAR, et déjà utilisé par certains sites en production, est PEAR DB, une abstraction de base de données créée pour ce projet. PEAR DB permet aux développeurs d’écrire du code PHP très simple qui peut être utilisé avec n’importe quel SGBD [5].
PEAR est donc un projet vivant et en perpétuelle expansion, ce qui signifie que les différents composants ne sont pas au même stade de stabilisation. Il faut donc bien étudier chaque composant avant de le mettre en oeuvre pour s’assurer de sa stabilité et de sa pérennité.
A moyen terme, de nombreux projets libres développés en PHP devraient adopter les PFC comme base technique pour s’assurer une compatibilité optimale avec les autres applications. C’est par exemple déjà le cas du framework Horde qui a remplacé une partie de ses bases techniques par PEAR.
[1] Comprehensive Perl Archive Network
[2] PHP Extension and Application Repository : http://pear.php.net/
[3] PHP-GTK est un projet permettant de réaliser en PHP des applications clientes classiques avec interface graphique : http://gtk.php.net/
[4] PHPDoc est une adaptation pour PHP de la norme JavaDoc
[5] Système de Gestion de Bases de Données