abduns / laravel-qrcode
Laravel 12/13 bridge for the abduns/qrcode QR Code generator: ServiceProvider, Facade, Blade directive, and response()->qrcode() macro.
v1.2.3
2026-05-17 12:47 UTC
Requires
- php: ^8.2
- abduns/qrcode: ^1.1 || dev-main
- illuminate/support: ^12.0|^13.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.64
- larastan/larastan: ^3.0
- orchestra/testbench: ^10.0|^11.0
- pestphp/pest: ^3.0
- pestphp/pest-plugin-laravel: ^3.0
- phpstan/phpstan: ^2.0
README
Laravel 12/13 bridge for the abduns/qrcode QR Code generator: ServiceProvider, Facade, Blade directive, and response()->qrcode() macro.
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