abduns/laravel-qrcode

Laravel 12/13 bridge for the abduns/qrcode QR Code generator: ServiceProvider, Facade, Blade directive, and response()->qrcode() macro.

Maintainers

Package info

github.com/abduns/laravel-qrcode

pkg:composer/abduns/laravel-qrcode

Statistics

Installs: 126

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v1.2.3 2026-05-17 12:47 UTC

README

Laravel 12/13 bridge for the abduns/qrcode QR Code generator: ServiceProvider, Facade, Blade directive, and response()->qrcode() macro.

Tests Version Downloads License

Features

  • Modern PHP support
  • Lightweight and fast
  • Typed API
  • Laravel Facade & Blade Directives
  • Standards-oriented
  • Response Macros

Installation

composer require abduns/laravel-qrcode
php artisan vendor:publish --tag=qrcode-config

Quick Start

use Dunn\QrCode\Laravel\Facades\QrCode;

$svg = QrCode::svg('https://example.com');

Why This Package?

  • Existing solutions are outdated
  • Missing modern PHP features
  • Poor developer experience
  • No standards compliance
  • Too framework-coupled

This package focuses on simplicity, interoperability, and modern developer ergonomics for generating QR Codes directly in Laravel.

Usage

Basic Usage

use Dunn\QrCode\Laravel\Facades\QrCode;

$svg     = QrCode::svg('https://example.com');     // SVG markup (the default)
$png     = QrCode::png('https://example.com');     // raw PNG bytes (ext-gd)
$ascii   = QrCode::console('https://example.com'); // unicode block string
$builder = QrCode::create('https://example.com');  // raw core Builder

Advanced Usage

use Dunn\QrCode\Laravel\Facades\QrCode;
use Dunn\QrCode\Payload\VCard;

// vCard — compose the contact, then hand to the facade
$card = VCard::make('John Doe')
    ->withOrg('Acme')
    ->addPhone('+14155550123', VCard::TYPE_WORK)
    ->addEmail('john@acme.com');

$svg = QrCode::svg($card);

Blade Directive

{!! '@qrcode'('https://example.com') !!}

Response Macro

use Dunn\QrCode\Renderer\Png\GdPngRenderer;

Route::get('/qr/{data}', fn (string $data) => response()->qrcode($data));

Configuration

config/qrcode.php exposes:

[
    'ecc'        => EccLevel::Medium,
    'renderer'   => 'svg',         // 'svg' | 'png' | 'console'
    'size'       => 300,
    'margin'     => 4,
    'foreground' => '#000000',
    'background' => '#ffffff',
]

Standards / Specifications

References:

  • ISO/IEC 18004

Supported Features

Feature Support
Facade
Blade Directives
Response Macros

Compatibility

Platform Supported
PHP 8.2+
Laravel 12.0+

Design Goals

  • Developer experience first
  • Predictable APIs
  • Minimal dependencies
  • Strong typing
  • Extensibility
  • Interoperability

Architecture

  • Facades
  • Service Providers
  • Response Macros
  • Blade Directives

Performance

Operation Time
Render component < 2ms

Testing

composer test

Roadmap

  • Support Livewire components

Contributing

Contributions, issues, and discussions are welcome.

Security

If you discover security issues, please report them responsibly.

License

MIT