Jeudi 5 janvier: PEAR: Quels paquetages pour quels usages ?
Lors de l'apéro PHP du vendredi 16 décembre 2005 Sarah m'a suggéré de présenter les paquetages de PEAR par les fonctions qu'ils apportent. Le site actuel permet de parcourir la liste des paquetages mais ne présente pas les paquetages en termes des tâches qu'ils permettent d'effectuer.
Je prends donc ma plume (clavier en fait) pour essayer y remédier et présenter les paquetages. Le but n'est pas d'être exhaustif mais plutôt de vous permettre de mettre un pied à l'étrier plus rapidement.
Pour vous faciliter l'installation des paquetages je propose d'installer l'installateur de paquetages.
PHP4
- Télécharger http://go-pear.org
- php go-pear.php
- suivez les instructions
PHP5
- Télécharger http://go-pear.phar
- php go-pear.phar
- suivez les instructions
Ecrire une application fonctionnant avec plusieurs bases de données ?
Je vous recommande d'utiliser MDB2.
MDB2 fournit une couche d'abstraction pour se connecter à une base de données ainsi qu'une abstraction des types de données (pour les dates par exemple).
Installation
pear install -o MDB2
pear install -o MDB2_Driver_mysqli
Les drivers pour chaque SGBD sont indépendants les uns des autres afin de faciliter les livraisons. Pour une liste complète des drivers allez ici.
Exemple d'utilisation
<?php
require_once 'MDB2.php';
// Entrez vos paramètres de connexion ici
$type_base = 'mysqli';
$utilisateur = 'root';
$mot_de_passe = '';
$hote = 'localhost';
$nom_de_la_base = 'mabase';
// definition de la source de connexion à la base
$dsn = array();
$dsn['username'] = $utilisateur;
$dsn['password'] = $mot_de_passe;
$dsn['hostspec'] = $hote;
$dsn['phptype'] = $type_base;
// Connexion à la base
$db =& MDB2::factory($dsn);
// Requête, modifiez la pour votre base
$query = 'SELECT champ1, champ2 FROM my_table';
// Execution de la requête
$result = $mdb2->query($query);
// types de données attendues pour champ1 et champ2
// à adapter selon vos champs
$types = array('integer', 'text');
$result->setResultTypes($types);
// Recuperation des résultats sous forme d'un tableau
$array = $result->fetchAll();
$result->free();
var_dump($array);
$db->disconnect();
?>
Ceci est un exemple très simple et n'a pas pour but de décrire toutes les fonctionnalités offertes par ce paquetage. Pour plus de détails (en anglais) orientez-vous vers ce site.
Ressources
- http://pear.php.net/manual/fr/package.database.mdb2.php
note : Ce paquetage n'est pas encore sorti en version stable mais cela ne saurait tarder.
Parser un fil RSS ?
XML_Feed_Parser est le paquetage qu'il vous faut. Il fonctionne uniquement sous PHP5.
Ce paquetage vous permet de parser les flux de type: Atom, RSS 1.0 et RSS 2
Installation
pear install -o XML_Feed_Parser
Exemple d'utilisation
<?php
$url = 'http://www.limbourg.com/arnaud/blog/index.rss2';
setlocale(LC_TIME, 'fr_FR');
require_once 'XML/Feed/Parser.php';
$feed = file_get_contents($url);
$feed = new XML_Feed_Parser($feed);
foreach ($feed as $item) {
echo 'Titre : ' . utf8_decode($item->title);
echo ' publié le ' . strftime('%A %d %B %Y à %T', $item->pubDate) . "\n";
}
?>
Ressources
- Page du paquetage sur le site PEAR : http://pear.php.net/package/XML_Feed_Parser
- Page du paquetage chez l'auteur : http://jystewart.net/code/feedparser/
Générer un graphique (diagramme en barres, camembert, etc.) ?
Vous pouvez utiliser Image_Graph.
Votre installation PHP doit disposer du support GD.
De nombreux types de graphiques sont disponibles, de nombreux exemples sont disponibles à [cette adresse][graph_examples]. Une liste non-exhaustive inclue: barres, camembert, radar, surfaces, etc.
Installation
pear install -o Image_Graph
Exemple (tiré d'un exemple distribué avec le paquetage) :
<?php
require_once 'Image/Graph.php';
// création du graphique
$Graph =& Image_Graph::factory('graph', array(400, 300));
// ajout d'un graphique de type barres verticales
$Graph->add(
Image_Graph::vertical(
Image_Graph::factory('title', array('Exemple de graphique en barres', 12)),
Image_Graph::vertical(
$Plotarea = Image_Graph::factory('plotarea'),
$Legend = Image_Graph::factory('legend'),
90
),
)
);
$Legend->setPlotarea($Plotarea);
// ajout des données
$Dataset =& Image_Graph::factory('random', array(10, 2, 15, false));
// ajout d'une barre
$Plot =& $Plotarea->addNew('bar', array(&$Dataset));
// mettre une couleure à la ligne
$Plot->setLineColor('gray');
// remplir d'une couleur
$Plot->setFillColor('blue@0.2');
// afficher le graphique
$Graph->done();
?>
Ressources
- Page du paquetage sur le site de PEAR : http://pear.php.net/manual/fr/package.images.image_graph.php
- Nombreux exemples : http://pear.veggerby.dk
note : Ce paquetage est en statut alpha, cela signifie que l'API peut changer d'ici la version stable.
#2 - Sarah 12.01.2006 09:51 - (Répondre)
Quelle bonne idée !
Si on pouvait avoir, Ã terme ces informations sur le site PEAR...ce serait le pied.
#2.1 - Arnaud a dit:
13.01.2006 22:21 - (Répondre)
Content de voir que c'est utile à au moins une personne ![]()
#3 - Nicolas a dit:
26.05.2006 15:56 - (Répondre)
Rien à voir avec le sujet de l'article. Il y a quelques articles qui ne sont pas correctement encodés. Je pense qu'après le "Jeudi, 5 janvier 2006" tu es passé en utf-8 et les articles qui précèdent cette date sont en iso-8859-1!
#4 - taisant thomas 09.01.2008 10:55 - (Répondre)
Je débute avec l'utilisation de pear
et je voulais remercier qu'il y est des gens qui pense à nous expliquer en donnanty des exemple, car la plupart des site disent seulement comment l'installer !



