Aller au contenu

phil/qr-code-bundle

alpha

Des codes QR dans une application Symfony : dans Twig, dans un composant accessible, à une adresse mise en cache, dans les documents UJO et dans les documents PDF.

phil/qr-code-bundle apporte phil/qr-code dans Symfony. La configuration fixe les valeurs par défaut de chaque code — niveau de correction d'erreurs, zone de silence, couleurs, taille, en-tête ECI, kanji, la plus longue charge utile — et les logos qu'un gabarit peut nommer. qr_code() dessine un texte ou un contenu typé dans Twig en SVG en ligne ou en URI data: ; le composant <twig:PhilQrCode:QrCode> place le code dans une figure, avec ce qu'il contient écrit à côté ; une route signée sert les codes en SVG ou en PNG avec un long cache HTTP. Les blocs qrCode des documents UJO (Universal JSON Output) sont dessinés avec les mêmes valeurs par défaut pour phil/svg-blocks-bundle, et PdfQrCodes dessine des codes dans les documents PDF de phil/paged-media, en vectoriel.

Il s'adresse à toute application Symfony qui affiche ou imprime des codes QR : billets, cartes-cadeaux, affiches, cartes de contact, affichettes Wi-Fi, pages et livres. Chaque code est dessiné sur le serveur ; rien n'est envoyé à un service.

État

PartieÉtat
Configuration des valeurs par défaut et des logos, vérifiée à la construction du conteneurImplémenté et testé
Fonction et filtre qr_code() : SVG en ligne, URI data: SVG ou PNG ; qr_code_label()Implémenté et testé
Contenus typés à partir de tableaux : URL, courriel, téléphone, SMS, lieu, Wi-Fi, MeCard, vCard, événementImplémenté et testé
<twig:PhilQrCode:QrCode> : une figure, une légende qui dit ce que contient le code, un lien pour une adresseImplémenté et testé
La route signée /qr-code.svg et /qr-code.png, publique et immuable, ETag et 304 ; qr_code_url()Implémenté et testé
Les blocs qrCode des documents UJO dessinés pour phil/svg-blocks-bundleImplémenté et testé
PdfQrCodes : des codes dessinés dans les documents PDF de phil/paged-media, logo comprisImplémenté et testé

Documentation

DocumentContenu
InstallationPrérequis, activation du bundle, import de la route.
ConfigurationChaque clé de phil_qr_code, et les logos.
Twigqr_code(), ses options et ses sorties, qr_code_label(), les contenus typés en tableaux.
Le composant<twig:PhilQrCode:QrCode>, ses props et son accessibilité.
La routeqr_code_url(), les adresses signées et leur cache.
Blocs UJO et documents PDFLes blocs qrCode et PdfQrCodes.
Points d'extensionCe que l'application peut remplacer ou ajouter, et quand c'est stable.
TestsLes tests du bundle et son seuil de mutation.
RéférenceChaque type public, avec son rôle.

Démarrage rapide

composer require phil/qr-code-bundle
# config/packages/phil_qr_code.yaml
phil_qr_code:
    error_correction: Q
    logos:
        brand: { path: '%kernel.project_dir%/assets/logo.svg', zone: 0.2 }
{{ qr_code('https://example.com/tickets/42', {title: 'Ticket 42'}) }}
<twig:PhilQrCode:QrCode :content="{type: 'wifi', ssid: 'Gnome Café', password: 'tea-and-dice'}" logo="brand" />

Prérequis

PHP 8.5 ou plus récent avec ext-sodium, Symfony 8.2 ou plus récent, Twig 3.21 ou plus récent, et phil/qr-code. Trois intégrations sont facultatives, suggérées plutôt qu'exigées, et enregistrées seulement quand leur paquet est installé : Symfony UX Twig Component pour le composant, phil/svg-blocks (ou phil/svg-blocks-bundle) pour les blocs qrCode des documents UJO, et phil/paged-media pour les codes QR dans les documents PDF. Le bundle s'installe et passe ses tests sans elles.

Contribuer

Les contributions sont les bienvenues sur 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.