xorgxx / neox-qrcode-bundle
Reusable Symfony UX QR Code component with Stimulus, custom SVG rendering, API and secure payload support.
Package info
github.com/xorgxx/neox-qrcode-bundle
Type:symfony-bundle
pkg:composer/xorgxx/neox-qrcode-bundle
Requires
- php: ^8.3
- bacon/bacon-qr-code: ^3.1
- symfony/cache-contracts: ^3.5
- symfony/framework-bundle: ^7.4 || ^8.0
- symfony/twig-bundle: ^7.4 || ^8.0
- symfony/ux-twig-component: ^2.28
- twig/twig: ^3.15
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.0
- phpstan/phpstan: ^2.0
- phpstan/phpstan-symfony: ^2.0
- phpunit/phpunit: ^12.0
- symfony/phpunit-bridge: ^7.4 || ^8.0
- symfony/rate-limiter: ^7.4 || ^8.0
Suggests
- ext-imagick: Required for PNG export.
- ext-sodium: Required for encrypted QR payloads.
- symfony/rate-limiter: Required for API rate limiting.
Provides
None
Conflicts
None
Replaces
None
This package is auto-updated.
Last update: 2026-09-01 12:54:14 UTC
README
Reusable Symfony UX QR Code package: Twig Components + Stimulus + custom SVG renderer + API + secure payloads.
Included
- QR matrix generated by
bacon/bacon-qr-code - custom SVG renderer owned by this package
- module shapes:
square,rounded,dot,diamond,heart - finder shapes:
square,rounded,circle - colors, finder color, linear/radial gradients
- central logo (local URL or data URI) with optional background
- built-in presets:
classic,dots,rounded,heart,gold,gradient - QR style validation: contrast, quiet zone, logo/correction warnings
<twig:NeoxQrCode>display component<twig:NeoxQrCodeEditor>live Stimulus editor- API: SVG, PNG, matrix, validation, presets
- signed, expiring, single-use and optionally encrypted payload service
- PNG export through Imagick when available
/docswith installation, architecture, API, editor, security and extension guide
Install
composer require xorgxx/neox-qrcode-bundle
If Flex does not register the bundle automatically:
// config/bundles.php Xorgxx\NeoxQrCodeBundle\NeoxQrCodeBundle::class => ['all' => true],
Import API routes when wanted:
# config/routes/neox_qrcode.yaml neox_qrcode: resource: '@NeoxQrCodeBundle/config/routes.yaml'
For secure payloads define a secret of at least 32 characters outside source control:
NEOX_QRCODE_SECRET=change-me-with-a-long-random-secret
Basic component
<twig:NeoxQrCode content="https://example.com" size="360" moduleShape="dot" finderShape="rounded" foreground="#111111" finderColor="#D59618" errorCorrection="H" />
Gradient + logo
<twig:NeoxQrCode content="https://example.com" moduleShape="rounded" gradientType="linear" foreground="#111111" gradientTo="#D59618" logoHref="/images/logo.svg" errorCorrection="H" />
Preset
<twig:NeoxQrCode content="https://example.com" preset="heart" />
Live editor
<twig:NeoxQrCodeEditor content="https://example.com" />
See docs/index.md — documentation available in English and French.
IA / agents de code
Avant toute modification automatisée, lire AGENTS.md. Il définit la philosophie, les règles, workflows, contraintes de sécurité et la définition de terminé.
