Search by

nowo-tech / report-kit-bundle

HecFranco

Reports and scheduled exports for Symfony: report types with parameter schemas, PDF / XLSX / CSV / JSON renderers, server-side SVG charts, on-screen report pages and per-owner scheduled e-mail subscriptions.

Package info

github.com/nowo-tech/ReportKitBundle

Documentation

Language:Shell

Type:symfony-bundle

pkg:composer/nowo-tech/report-kit-bundle

Fund package maintenance!

HecFranco

Statistics

Installs: 0

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

dev-main 2026-11-11 12:35 UTC

This package is auto-updated.

Last update: 2026-11-11 12:41:20 UTC


README

CI Packagist Version License PHP Symfony Coverage

Reports and scheduled exports for Symfony: report types with parameter schemas, PDF / XLSX / CSV / JSON renderers, server-side SVG charts, on-screen report pages and per-owner scheduled e-mail subscriptions.

馃毀 Status: S0 scaffold, no release yet. The package is built slice by slice from its design contract (docs/CONTRACT.md, 221-C). S0 ships the bundle class, the strict configuration tree and every quality gate; the features below land with the slices in docs/ROADMAP.md.

馃搵 Compatible with Symfony 7.4, 8.0 and 8.1 路 PHP 8.2+ (Symfony 8.x requires PHP 8.4+)

FrankenPHP Friendly Worker Mode

This bundle is built for FrankenPHP worker mode with the kernel kept alive and not reset between requests: no request state in services, a worker test (one kernel, 2,000 requests) from the first slice.

Standard Symfony by default, DDD / hexagonal opt-in: zero configuration in a standard project; public ports are interfaces and value objects, bundle-owned tables are mapped in XML and referenced by id, the bundle never flushes your EntityManager.

Features (planned, see the roadmap)

  • Report model: Report and ReportSection (key values with delta, tone and sparkline; tables with optional chart kind and presentation style; truncation note), badges, glance line, link.
  • Report type registry (tagged ReportTypeInterface) with a parameter schema (periods, context, typed extras), availability per viewer and a configurable menu order.
  • Renderers: PDF (closed Dompdf: no remote, no JavaScript, no PHP, private chroot), XLSX (OpenSpout streaming), CSV (UTF-8 BOM, formula-injection guard), JSON, and server-side SVG charts with light / dark variants. Dompdf and OpenSpout are suggested: a format is on only when its engine is installed (Q-O3).
  • Generic PDF runner PdfDocumentRendererInterface for any template (invoices, receipts, mandates).
  • Pages on UiKit + FormKit: report list, report page (filter form, Export menu, Schedule by e-mail dialog).
  • Scheduled subscriptions: daily / weekly / monthly at an hour in the owner's time zone, atomic claim, idempotent run per slot, built as the owner with an access re-check, branded mail to the owner only, auto-pause with a reason.
  • Operator page, UserKit eraser and export, bridges for brand-contracts, MailKit, NotifyKit, AuditKit and ApiTokenBundle; optional public API <prefix>/reports/v1 (off by default).

Installation

composer require nowo-tech/report-kit-bundle

See docs/INSTALLATION.md. Nothing is registered while nowo_report_kit.enabled is false.

Configuration

# config/packages/nowo_report_kit.yaml
nowo_report_kit:
    enabled: false

Every key of the contract is already accepted (strict tree): docs/CONFIGURATION.md.

Documentation

Requirements

  • PHP >= 8.2, < 8.6
  • Symfony 7.4, 8.0 or 8.1

Demo

demo/symfony8: Symfony 8.1, FrankenPHP worker mode, MySQL, on http://localhost:8223 (make -C demo up).

Tests and coverage

make test               # PHPUnit in Docker
make test-coverage-100  # fails below 100 % of src/
make release-check      # every gate, demo included
  • PHP: 100 % of src/ (gate in CI).

License

MIT. See LICENSE.

Author

Created by H茅ctor Franco Aceituno at Nowo.tech.