Aujourd’hui , nous allons découvrir un plugin symfony permettant de réaliser simplement des graphiques en flash à partir d’un tableau de donnée.
Il gère les :
- Histogrammes
- Graphique en courbes
- Graphiques en secteurs
- Graphiques en barres
- Graphiques en aires
Les graphiques générés sont entièrement paramétrables : choix des couleurs , des titres .
L’installation du plugin est très simple :
symfony plugin:install stOfcPlugin |
puis
symfony cc |
Ensuite , dans le template où l’on veut afficher le graphique on copie la ligne suivante :
<code> stOfc::createChart(500, 300, 'quiz_sondage/pieChartData?slug='.$quiz->getSlug(), fal </code> |
Les premiers paramètres correspondent à la taille du graphique tandis que le second correspond à la route qui appelle la fonction qui génèrera le graphique.
Si vous ne voulez pas définir une route supplémentaire vous pouvez appelez la fonction comme ceci : module/action
Le readme du contient des exemples pour bien commencé :
http://www.symfony-project.org/plugins/stOfcPlugin
Ce plugin est basé sur un projet open-source, voici l’adresse :
http://teethgrinder.co.uk/open-flash-chart/
Le site contient toute la doc nécessaire
Et voici l’adresse du forum d’aide : ( ça peut toujours servir )
http://forums.openflashchart.com/
Autre solution pour faire des graphique sans flash : jpgraph
Pour télécharger la libraire jpgraph : http://www.aditus.nu/jpgraph
On va donc voir comment l’utiliser avec sympfony :
Télécharger la dernière realease pour PHP5
Dans un premier temps copier le dossier jpgraph obtenu après la décompression de l’archive dans le dossier lib de votre projet
Faites un symfony cc
dans le template voulu copier la ligne suivante :
<code>
<img class="graph" src="<?php echo url_for('@actionSouhaité'); ?>" alt="" />
</code> |
» />
@actionSouhaité = la route appelant l’action qui va générer l’image.
Maintenant on va voir un modèle d’action pour génèrer l’image :
public function executeGraph(sfWebRequest $request) { $i=0; $ydata=array(); // Tableau des valeurs $xdata=array(); // Tableau axis ( légénde des valeurs ) // Code pour remplir les tableau comme vous voulez // Création du graph type courbe $graph = new Graph(1300,400,"auto"); $graph->SetScale("textlin"); $graph->title->Set('Evolution du nombre d\'inscription'); $graph->title->SetFont(FF_FONT1,FS_BOLD); $line = new LinePlot($ydata); $graph->Add($line); $line->SetColor("#36393D"); $line->SetWeight(2); $graph->xaxis->setTickLabels($xdata); // Output graph $graph->Stroke(); return sfView::NONE; // Important pour que l'action retourne que le code de l'image } |

Merci beaucoup d’expliquer comment utiliser jpgraph avec Symfony.
It saved my day