Aller au contenu

phil/svg-chart

alpha

Des graphiques dessinés en SVG sur le serveur, à partir de la configuration qu'écrit déjà un éditeur de graphiques.

phil/svg-chart lit la forme d'une configuration Chart.js — la sorte de graphique, ses libellés, ses séries et leurs couleurs, son titre — et la dessine dans une image SVG : des barres groupées ou des lignes sur un axe de valeurs aux graduations rondes, ou les pointes d'un graphique circulaire ou en anneau, avec un titre au-dessus et une légende au-dessous. Chaque marque porte son libellé et sa valeur pour le pointeur, et l'image porte une description qui lit chaque valeur pour les lecteurs d'écran.

Il s'adresse à tout code PHP qui doit afficher un graphique sans script : un bloc de document dessiné une seule fois à son enregistrement, un PDF, un courriel, une page lue sans JavaScript. La configuration est vérifiée par rapport à des limites : celle qu'envoie un client ne coûte donc pas plus qu'une grande configuration honnête.

C'est une simple bibliothèque PHP au-dessus de ext-mbstring. Sa sortie est déterministe.

État

PartieÉtat
Chart::fromConfig() : type, libellés, séries, couleurs et titre d'une configuration Chart.js, avec des limitesImplémenté et testé
Barres groupées par libellé, valeurs négatives sous la ligne du zéroImplémenté et testé
Lignes passant par les valeurs, interrompues là où une valeur manqueImplémenté et testé
Graphiques circulaires et en anneau, à partir de la première sérieImplémenté et testé
Graduations rondes, libellés éclaircis quand ils se chevauchent, légende en rangées, couleurs Okabe-ItoImplémenté et testé
<title> sur chaque marque, <desc> de chaque valeur, role="img"Implémenté et testé

Documentation

DocumentCe qu'il couvre
InstallationLes prérequis et l'installation.
ConfigurationCe que lit Chart::fromConfig(), ce qu'il ignore, et ses limites.
DessinL'image que dessine SvgChartWriter, ses options et son accessibilité.
Points d'extensionCe qu'une application peut remplacer ou ajouter, et quand c'est stable.
TestsLes tests du paquet et son seuil de mutation.
RéférenceChaque type public, avec son rôle.

Démarrage rapide

composer require phil/svg-chart
use Phil\SvgChart\Chart;
use Phil\SvgChart\SvgChartWriter;

$svg = new SvgChartWriter(640, 400)->write(Chart::fromConfig([
    'type' => 'bar',
    'data' => ['labels' => ['Jan', 'Feb'], 'datasets' => [['label' => 'Sales', 'data' => [12, 19]]]],
    'options' => ['plugins' => ['title' => ['text' => 'Sales']]],
]));

Prérequis

PHP 8.5 ou plus récent, avec ext-mbstring.

Contribuer

Les contributions sont les bienvenues dans le monodépôt PHIL : lisez le guide de contribution et le code de conduite. Signalez une vulnérabilité en privé, comme l'explique la politique de sécurité, jamais dans un ticket public.

Licence

MIT, © Philippe Gamache, doing business as Le Gnome Archiviste; a Parler Haut Interagir Librement project. Voir LICENSE.