it-empower-solutions / qr-code-generator
Package PHP de generation de QR code personnalisable (couleurs et logo) pour Laravel, Symfony et projets PHP standards.
Package info
github.com/saberjelassi/it-empower-qr-code-generator
pkg:composer/it-empower-solutions/qr-code-generator
Requires
- php: ^8.1
- ext-gd: *
- endroid/qr-code: ^5.0
Requires (Dev)
- phpunit/phpunit: ^10.0
Suggests
- illuminate/support: Pour l'auto-discovery Laravel.
- symfony/dependency-injection: Pour l'integration Symfony.
- symfony/http-kernel: Pour utiliser le bundle Symfony.
This package is auto-updated.
Last update: 2026-09-01 11:00:10 UTC
README
Package PHP pour generer des QR codes personnalisables (couleurs, image/logo) compatible:
- Projets PHP standards
- Laravel
- Symfony
1) Nom Packagist recommande
it-empower-solutions/qr-code-generator
2) Installation
composer require it-empower-solutions/qr-code-generator
3) Utilisation en PHP standard
<?php use ItEmpower\QrCode\QrCodeGenerator; $generator = new QrCodeGenerator(); // Sauvegarde sur disque $generator->saveToFile('https://it-empower.com', __DIR__.'/qr.png', [ 'size' => 320, 'margin' => 12, 'foreground_color' => '#0A2E6E', 'foreground_gradient' => 'linear-gradient(90deg,#0e2d63,#1464e9)', 'background_color' => [255, 255, 255], 'round_block_size_mode' => 'enlarge', // none|margin|enlarge|shrink 'qr_border_radius' => 22, 'qr_border_width' => 2, 'qr_border_color' => '#0E2D63', 'logo_path' => __DIR__.'/logo.png', 'logo_resize_to_width' => 70, 'logo_safe_zone' => 14, // espace autour du logo 'logo_punchout_background' => true, 'logo_box_color' => '#FFFFFF', // fond uni derriere le logo 'logo_border_width' => 3, 'logo_border_color' => '#14B9DD', 'logo_border_radius' => 16, 'logo_border_padding' => 8, 'label_text' => 'IT EMPOWER SOLUTIONS', 'label_text_color' => '#0E2D63', 'label_font_size' => 16, 'label_alignment' => 'center', 'label_margin' => [6, 10, 10, 10], // top,right,bottom,left 'writer' => 'png', ]); // Data URI (ex: balise <img src="...">) $dataUri = $generator->generateDataUri('https://it-empower.com', [ 'writer' => 'png', ]);
4) Options disponibles
size(int): taille du QR code en pixelsmargin(int): marge externewriter(string):pngousvgencoding(string): ex:UTF-8error_correction_level(string):low,medium,quartile,highforeground_color(array RGB/RGBA ou hex): ex[10, 46, 110]ou#0A2E6Eforeground_gradient(string|array|null): degrade sur les modules QR (PNG), exlinear-gradient(90deg,#0e2d63,#1464e9)background_color(array RGB/RGBA ou hex)round_block_size_mode(string):none,margin,enlarge,shrink(arrondi des modules)qr_border_radius(int): arrondi des coins du QR finalqr_border_width(int): largeur de bordure externeqr_border_color(array RGB/RGBA ou hex): couleur de la bordure externeqr_corner_fill_color(array RGB/RGBA ou hex|null): remplissage des coins coupes (sinon transparent)logo_path(string|null): chemin image/logologo_resize_to_width(int): largeur du logologo_safe_zone(int): ajoute un espace autour du logo pour eviter que les modules touchentlogo_punchout_background(bool): ameliore la lisibilite autour du logologo_box_color(array RGB/RGBA ou hex): couleur unie de la box du logologo_border_width(int): largeur de bordure autour du logologo_border_color(array RGB/RGBA ou hex): couleur de bordure du logologo_border_radius(int): arrondi de la bordure logologo_border_padding(int): espace interne entre logo et bordurelabel_text(string|null): texte affiche en bas du QR codelabel_text_color(array RGB/RGBA ou hex)label_font_size(int): taille du textelabel_font_path(string|null): chemin vers une police .ttf/.otf (optionnel)label_alignment(string):left,center,rightlabel_margin(array): marges du texte[top, right, bottom, left]
4.1) Exemples prets a l'emploi
Le dossier examples/ contient 4 scripts:
examples/01-basic.phpexamples/02-colors.phpexamples/03-logo.phpexamples/04-full-style.php
Execution:
php examples/01-basic.php php examples/02-colors.php php examples/03-logo.php php examples/04-full-style.php
Les fichiers generes sont dans examples/output/.
5) Laravel
Le package est auto-decouvert via Composer.
Publication de la config:
php artisan vendor:publish --tag=it-empower-qr-config
Exemple:
<?php use ItEmpower\QrCode\QrCodeGenerator; Route::get('/qr', function (QrCodeGenerator $generator) { return response( $generator->generateString('https://it-empower.com', [ 'foreground_color' => '#0A2E6E', 'logo_path' => public_path('images/logo.png'), 'logo_safe_zone' => 14, 'logo_box_color' => '#FFFFFF', 'logo_border_width' => 3, 'logo_border_color' => '#14B9DD', 'label_text' => 'IT EMPOWER SOLUTIONS', 'label_text_color' => '#0E2D63', 'round_block_size_mode' => 'enlarge', 'foreground_gradient' => 'linear-gradient(90deg,#0e2d63,#1464e9)', ]), 200, ['Content-Type' => 'image/png'] ); });
Facade disponible: ITEQrCode
6) Symfony
Ajouter le bundle si besoin:
// config/bundles.php return [ ItEmpower\QrCode\Framework\Symfony\ItEmpowerQrCodeBundle::class => ['all' => true], ];
Configuration:
# config/packages/it_empower_qr_code.yaml it_empower_qr_code: defaults: size: 300 margin: 10 writer: 'png' foreground_color: [10, 46, 110] background_color: [255, 255, 255] round_block_size_mode: 'enlarge' foreground_gradient: 'linear-gradient(90deg,#0e2d63,#1464e9)' qr_border_radius: 22 logo_path: null logo_safe_zone: 14 logo_box_color: '#FFFFFF' logo_border_width: 3 logo_border_color: '#14B9DD' label_text: 'IT EMPOWER SOLUTIONS'
Dans un controller:
<?php use ItEmpower\QrCode\QrCodeGenerator; use Symfony\Component\HttpFoundation\Response; public function qr(QrCodeGenerator $generator): Response { return new Response( $generator->generateString('https://it-empower.com', [ 'logo_path' => $this->getParameter('kernel.project_dir').'/public/logo.png', 'logo_safe_zone' => 14, 'logo_box_color' => '#FFFFFF', 'logo_border_width' => 3, 'logo_border_color' => '#14B9DD', 'label_text' => 'IT EMPOWER SOLUTIONS', 'round_block_size_mode' => 'enlarge', 'foreground_gradient' => 'linear-gradient(90deg,#0e2d63,#1464e9)', ]), 200, ['Content-Type' => 'image/png'] ); }
7) Publication Packagist (workflow recommande)
- Creer un nouveau repository GitHub dedie (ex:
it-empower-qr-code-generator). - Copier le contenu de ce dossier package dans ce repository.
- Pousser la branche principale (
main). - Ouvrir Packagist et soumettre l'URL du repo.
- Ajouter un webhook Packagist sur GitHub pour les mises a jour automatiques.
- Taguer les versions:
git tag v1.0.0 git push origin v1.0.0
8) Contact
- Societe: IT EMPOWER SOLUTIONS
- Email: contact@it-empower.com