Stofcplugin : faire de bien jolis graphiques avec symfony

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-&gt;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="&lt;?php echo url_for('@actionSouhaité'); ?&gt;" 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-&gt;SetScale("textlin");
      $graph-&gt;title-&gt;Set('Evolution du nombre d\'inscription');
      $graph-&gt;title-&gt;SetFont(FF_FONT1,FS_BOLD);
      $line = new LinePlot($ydata);
      $graph-&gt;Add($line);
      $line-&gt;SetColor("#36393D");
      $line-&gt;SetWeight(2);
      $graph-&gt;xaxis-&gt;setTickLabels($xdata);
 
      // Output graph
      $graph-&gt;Stroke();
 
      return sfView::NONE; // Important pour que l'action retourne que le code de l'image
    }

Partagez cet article