Dans PEAR, le code est séparé en
<< packages >> (ou modules).
Chaque package est un projet séparé,
avec sa propre équipe de développement,
son numéro de version, son cycle de publication,
sa documentation et une relation bien définie
avec les autres packages
(incluant les dépendances vis-à-vis d'autres packages).
Les packages sont distribués sous la forme d'une archive tar
compressée (gzip),
comprenant un fichier de description du package,
et sont installés
sur votre système local à
l'aide du script d'installation de PEAR.
Il existe deux types de packages : les << source packages >>,
qui ne contiennent que des fichiers de code source, et les
<< binary packages >>,
qui contiennent des fichiers binaires, dépendant du type
de système utilisé,
et eventuellement les fichiers de code source.
Installer un << source package >> contenant du code C,
demande evidemment un environnement de compilation.
PEAR definit les packages comme une arborescence, où chaque
<< noeud >>
de l'arborescence est représenté
par une partie du nom du package.
Les noeuds sont organisés par sujets
élémentaires, et chaque partie
est séparée par un << underscore >>.
Exemples de noms de packages :
<< MP3_Id >>,
<< Archive_Tar >>
et << HTTP_Post >>.
Les packages peuvent être liés entre eux par
des dépendances explicites,
mais il n'y a pas de relation automatique par exemple
entre un package et son parent dans l'arborescence
(par exemple,
<< HTTP_Post >> et par défaut indépendant de
<< HTTP >>).
Quelques noeuds primaires dans l'arborescence, appelés
<< sous-repositaires >>, ont des fonctions particulières.
Il s'agit actuellement de
PECL,
et Gtk.
Pour chacun d'eux des règles différentes s'appliquent,
elles sont expliquées dans leur description ci-dessous.
Un guide de style de codage, la 'Convention de Codage PEAR'
(PEAR Coding Standards, PCS en
abrégé), existe pour aider la collaboration
entre les développeurs de PEAR,
pour apporter de la qualité
et de la portabilité,
et pour aider les contributeurs
à PEAR à fournir des API cohérentes.
Tous les packages PEAR sont enregistrés
et chargés dans une base
de données centrale se trouvant sur pear.php.net. Des packages
d'autres origines, mais de sources libre, peuvent aussi être
enregistrés et chargés.
Les packages dont le source n'est pas
libre peuvent être installés par le script d'installation de PEAR,
mais la base de données de PEAR est réservée au code libre.
Pear.php.net fournira aussi bien une interface conviviale pour
les personnes (HTML), qu'une interface pour les machines
(actuellement XML-RPC)
pour accèder à la base de données de PEAR.
Le téléchargement des packages est effectué par HTTP.
Les autres fonctions qui seront fournies par pear.php.net sont :
Les packages sont distribués sous la forme d'une archive tar
compressée (gzip) contenant un fichier XML de description.
Ce fichier contient les informations sur le package, la liste des
fichiers et leurs rôles, ainsi que les dépendances.
PECL
PECL (prononcer << piqueule >>) est un sous-ensemble de PEAR pour
les extensions de PHP écrite en C, semblables à celles distribuées
avec PHP4.
De fait, avoir un lieu où déplacer les extensions
actuelles de PHP a été l'une des motivations lors de la création
de PECL. Les extensions dans PECL suivent la convention de codage
PHP plutôt que celle de PEAR, mais elles sont distribuées et
installées comme des package PEAR.
Le processus de déplacement d'une extension de PHP vers PECL est appellée
"pickling".
En Octobre 2003, PECL est devenu un projet indépendant,
qui n'appartient plus du tout à
PEAR (à l'exception de l'infrastructure,
que PECL a emprunté à PEAR).
Plus d'informations et tous les paquetages PECL
peuvent être trouvés sur la
page d'accueil de PECL.
Durant le déplacement de PECL,
le projet a également été renommé de
<< PHP Extension Code Library >> en
<< PHP Extension Community Library >>.