Cet article expose la mthode d'installation manuelle de la librairie PEAR pour PHP
I - Avant-propos........................................................................................................................................................... 3
I-A - Pr-requis....................................................................................................................................................... 3
I-B - Public..............................................................................................................................................................3
I-C - Pourquoi ce document ?................................................................................................................................3
II - PEAR......................................................................................................................................................................4
II-A - Qu'est-ce que PEAR (succinctement)?........................................................................................................ 4
II-B - Pourquoi une installation manuelle ?............................................................................................................4
II-C - Notion de package et de dpendances........................................................................................................4
II-D - O tlcharger ?........................................................................................................................................... 4
III - Assez parl, passons l'action !.......................................................................................................................... 5
III-A - Arborescence............................................................................................................................................... 5
III-B - Installation du package DB.......................................................................................................................... 5
IV - include_path..........................................................................................................................................................7
V - Notion de Nuds.................................................................................................................................................. 8
VI - Conclusion............................................................................................................................................................ 9
-2Copyright 2004 Jrme Chabaud. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://php.developpez.com/cours/pear/installation/
I - Avant-propos
I-A - Pr-requis
Connatre les bases du langage PHP, avoir un serveur HTTP avec PHP 4.3.0 (ou suprieur) et MySQL (optionnel :
uniquement pour faire des tests). Pour l'utilisateur de Windows, EasyPHP1.7 ira trs bien.
I-B - Public
Webmasters, dveloppeurs php dsireux d'utiliser la bibliothque PEAR.
-3Copyright 2004 Jrme Chabaud. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://php.developpez.com/cours/pear/installation/
II - PEAR
II-A - Qu'est-ce que PEAR (succinctement)?
PEAR (pour PHP Extension and Application Repository) est une bibliothque de scripts PHP. Tous les scripts dposs
dans PEAR respectent un certain nombre de rgles qui les rend portables (indpendants de la plate-forme) et
rutilisables.
II-D - O tlcharger ?
Les packages sont tlchargeables partir de la page : http://pear.php.net/packages.php
Chaque package a une "page d'accueil" sur laquelle on a les informations suivantes :
-4Copyright 2004 Jrme Chabaud. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://php.developpez.com/cours/pear/installation/
III-A - Arborescence
Il faut d'abord dfinir le rpertoire dans lequel seront installs les packages.
Ce rpertoire peut tre en dehors de l'arborescence accessible par le serveur HTTP. Par exemple c:\php\pear si vous
tes sous Windows ou /home/php/pear pour Linux.
Pour plus de facilit, nous appellerons ce rpertoire PEARDIR par la suite.
Il faut alors copier le contenu du rpertoire DB-x.x.x dans PEARDIR. On aura donc :
On va pouvoir tester notre premier script utilisant PEAR. Pour cela nous utiliserons l'exemple de la page :
http://pear.php.net/manual/en/package.database.db.intro-connect.php
Script de test
<?php
-5Copyright 2004 Jrme Chabaud. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://php.developpez.com/cours/pear/installation/
Script de test
$user = 'root';
$passwd = '';
$mysqlServer = 'localhost';
$dataBaseName ='mabase';
require_once 'DB.php';
$dsn ='mysql://'.$user.':'.$passwd.'@'.$mysqlServer.'/'.$dataBaseName;
$db =& DB::connect($dsn);
if (DB::isError($db)) {
die($db->getMessage());}
echo 'la connexion a reussie' ;
$db->disconnect();
?>
Bien sr, vous modifierez les lignes 2 5 afin quelles correspondent vos paramtres de connexion.
Et l oh surprise : vous avez 2 belles erreurs !!
Warning: main(DB.php): failed to open stream: No such file or directory in C:\data\www\testPear
\testDB.php on line 2
Fatal error: main(): Failed opening required 'DB.php' (include_path='.;c:\php\includes')
in C:\data\www\testPear\testDB.php on line 2
Le script que nous avons crit ne trouve pas le fichier DB.php. C'est normal puisque nous n'avons pas dit o se
situaient les scripts des packages PEAR.
Pour rsoudre ceci, nous allons utiliser la fonction set_include_path().
-6Copyright 2004 Jrme Chabaud. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://php.developpez.com/cours/pear/installation/
IV - include_path
Lorsque dans un script on utilise une des fonctions include, require, require_once, les fichiers passs en argument
sont cherchs dans les rpertoires dfinis comme include_path. Pour connatre ces rpertoires, il suffit de faire un
phpinfo() ou d'utiliser la fonction get_include_path().
Il faut donc que l'on ajoute le rpertoire PEARDIR ces include_path. Pour cela, on va utiliser la fonction
set_include_path() de la faon suivante :
Pour Windows
set_include_path(get_include_path() . ";c:\php\pear");
Pour Linux
set_include_path(get_include_path() . ":/home/php/pear");
Nota: il est possible de modifier la configuration de PHP pour inclure automatiquement les rpertoires voulus, mais
ceci est souvent (toujours) impossible sur les serveurs mutualiss.
Votre code ne fonctionnerait alors pas sur ce type de serveur.
Une fois ajoute cette ligne au dbut de notre script, on a... de nouveau 2 belles erreurs
Warning: main(PEAR.php): failed to open stream: No such file or directory in c:\php\pear\DB.php on line
26
Fatal error: main(): Failed opening required 'PEAR.php' (include_path='.;c:\php\includes;c:\php\pear')
in c:\php\pear\DB.php on line 26
En effet le package DB a une dpendance au package PEAR: il faut donc installer le package PEAR. Au passage
on voit bien que les include_path ont t modifi.
Je vous laisse donc installer le package PEAR qui est disponible l'adresse : http://pear.php.net/package/PEAR
Pour rappel :
1
2
3
Tlchargement
Dcompression dans un rpertoire temporaire
Copie du contenu du package dans PEARDIR
-7Copyright 2004 Jrme Chabaud. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://php.developpez.com/cours/pear/installation/
V - Notion de Nuds
Dans l'arborescence du rpertoire PEAR on distingue des nuds. Ces nuds sont identifiables dans le nom du
package car ils sont spars par des underscores. Par exemple le package DB_DataObject fait partie du nud DB
que l'on vient de crer. Pour installer ce package il faut donc copier son contenu (aprs dcompression) non pas
dans le rpertoire PEARDIR comme prcdemment mais dans PEARDIR/DB.
Les nuds de niveau le plus lev sont identifiables par l'absence d'underscore dans le nom du package. C'est le
cas du package DB que nous avons install prcdemment.
Certains packages font partie de nuds qui n'ont pas de package propre. Je m'explique avec l'exemple du nud
HTML : il existe un package HTML_QuickForm qui doit donc tre install dans le rpertoire PEARDIR/HTML. Mais
comme il n'existe pas de package HTML, il faut crer le rpertoire HTML la main .
Nota: Les noms des nuds sont toujours en majuscule.
-8Copyright 2004 Jrme Chabaud. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://php.developpez.com/cours/pear/installation/
VI - Conclusion
Toutes ces manipulations vous semblent peut-tre compliques, fastidieuses, voire inutiles, mais je vous assure
qu'installer un package prend moins d'une minute quand on a l'habitude.
-9Copyright 2004 Jrme Chabaud. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://php.developpez.com/cours/pear/installation/