Aller au contenu

Installation

phil/reporting-bundle

Prérequis

PaquetVersionPourquoi
PHP8.5 ou plus récent, avec intl, json, mbstring et sodiumChiffres écrits dans une locale ; tâches en JSON ; libellés comptés en caractères ; identifiants aléatoires.
phil/svg-chart^0.1Les images SVG des graphiques.
symfony/config, symfony/dependency-injection^8.2Le bundle et sa configuration.
symfony/service-contracts^3.6Les localisateurs des sources, rapports, formats et livraisons.
psr/clock, psr/event-dispatcher^1.0Le moment à partir duquel les périodes sont comptées ; ReportExported.

Chacun de ces paquets est utilisé quand il est installé :

PaquetPour
symfony/ux-twig-componentLes composants Dashboard, Metric et Chart.
symfony/ux-live-componentLe composant LiveDashboard, dont la période change sans recharger la page.
symfony/messengerReportQueue et les handlers de RunReport et RunScheduledReport.
symfony/schedulerLe calendrier phil_reporting.
symfony/mailer, symfony/mimeLa livraison mail.
symfony/notifierLa livraison notification.
symfony/consolephil:reporting:export.
symfony/http-foundationReportResponses.
symfony/security-coreLes tableaux de bord réservés à un rôle.
easycorp/easyadmin-bundleUn tableau de bord comme page de l'interface d'administration.
symfony/asset-mapperLa feuille de style associée sous phil-reporting.

Activer le bundle

composer require phil/reporting-bundle
// config/bundles.php
return [
    // …
    Phil\ReportingBundle\PhilReportingBundle::class => ['all' => true],
];

Le bundle a besoin d'un service clock, qu'enregistre FrameworkBundle. Les composants ont besoin de TwigBundle et du traducteur, pour leurs libellés du domaine phil_reporting.

La feuille de style

Avec AssetMapper, la feuille de style est associée sous phil-reporting/reporting.css :

<link rel="stylesheet" href="{{ asset('phil-reporting/reporting.css') }}">

Elle est écrite dans la couche de cascade phil.components sur les jetons de PHIL UX (phil/ux-css), avec une valeur propre pour chacun quand PHIL UX n'est pas chargé. Ses barres lisent leur longueur dans un attribut data-share : aucun style en ligne, ce qui permet de les afficher avec une Content Security Policy sans 'unsafe-inline' pour les styles.

Le répertoire du claim check

Le magasin directory garde les tâches et les exports sous %kernel.project_dir%/var/phil_reporting, créé lisible par son seul propriétaire. Le worker qui exécute les rapports et le code qui les met en file d'attente doivent le partager : sur plusieurs machines, faites de JobStore et ExportStore des alias vers des services de l'application, comme le montrent les Points d'extension.