it-empower-solutions/qr-code-generator

Package PHP de generation de QR code personnalisable (couleurs et logo) pour Laravel, Symfony et projets PHP standards.

Maintainers

Package info

github.com/saberjelassi/it-empower-qr-code-generator

Homepage

pkg:composer/it-empower-solutions/qr-code-generator

Transparency log

Statistics

Installs: 0

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

dev-main 2026-09-01 10:50 UTC

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 pixels
  • margin (int): marge externe
  • writer (string): png ou svg
  • encoding (string): ex: UTF-8
  • error_correction_level (string): low, medium, quartile, high
  • foreground_color (array RGB/RGBA ou hex): ex [10, 46, 110] ou #0A2E6E
  • foreground_gradient (string|array|null): degrade sur les modules QR (PNG), ex linear-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 final
  • qr_border_width (int): largeur de bordure externe
  • qr_border_color (array RGB/RGBA ou hex): couleur de la bordure externe
  • qr_corner_fill_color (array RGB/RGBA ou hex|null): remplissage des coins coupes (sinon transparent)
  • logo_path (string|null): chemin image/logo
  • logo_resize_to_width (int): largeur du logo
  • logo_safe_zone (int): ajoute un espace autour du logo pour eviter que les modules touchent
  • logo_punchout_background (bool): ameliore la lisibilite autour du logo
  • logo_box_color (array RGB/RGBA ou hex): couleur unie de la box du logo
  • logo_border_width (int): largeur de bordure autour du logo
  • logo_border_color (array RGB/RGBA ou hex): couleur de bordure du logo
  • logo_border_radius (int): arrondi de la bordure logo
  • logo_border_padding (int): espace interne entre logo et bordure
  • label_text (string|null): texte affiche en bas du QR code
  • label_text_color (array RGB/RGBA ou hex)
  • label_font_size (int): taille du texte
  • label_font_path (string|null): chemin vers une police .ttf/.otf (optionnel)
  • label_alignment (string): left, center, right
  • label_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.php
  • examples/02-colors.php
  • examples/03-logo.php
  • examples/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)

  1. Creer un nouveau repository GitHub dedie (ex: it-empower-qr-code-generator).
  2. Copier le contenu de ce dossier package dans ce repository.
  3. Pousser la branche principale (main).
  4. Ouvrir Packagist et soumettre l'URL du repo.
  5. Ajouter un webhook Packagist sur GitHub pour les mises a jour automatiques.
  6. Taguer les versions:
git tag v1.0.0
git push origin v1.0.0

8) Contact