hennest / qr-code
laravel应用的二维码生成器。
1.1
2024-08-01 14:08 UTC
Requires
- php: ^8.2
- bacon/bacon-qr-code: ^2.0
Requires (Dev)
- laravel/pint: ^1.17
- orchestra/testbench: ^9.2
- pestphp/pest: ^2.34
- phpstan/phpstan: ^1.11
README
这个库为PHP应用程序提供了一个简单易用的二维码生成器。它基于BaconQrCode库构建,并提供了一种灵活高效的方式来生成二维码。
安装
您可以通过Composer安装此库
composer require hennest/qr-code
Laravel集成
此库附带Laravel服务提供器,便于集成。安装后,将服务提供器添加到您的config/app.php
文件中
'providers' => [ // Other Service Providers Hennest\QRCode\Providers\QRCodeServiceProvider::class, ],
配置
发布配置文件
php artisan vendor:publish --tag=qr-code
这将创建一个config/qr-code.php
文件,您可以在其中自定义库设置。
用法
基本用法
use Hennest\QRCode\Enums\Color; use Hennest\QRCode\Configuration\Dimension; use Hennest\QRCode\Configuration\ColorScheme; use Hennest\QRCode\Services\QRCodeInterface; class ExampleController { public function __construct( private QRCodeInterface $qrCode ) {} public function example() { // Generate a QR code $qrCode = $this->qrCode->generate('https://example.com')->toSvg(); // Generate a QR code with custom settings $qrCode = $this->qrCode->generate( content: 'https://example.com', dimension: new Dimension( size: 300, margin: 300 ), colorScheme: new ColorScheme( foreground: Color::Black, background: Color::White ) )->toSvg(); // Save a QR code to a file $this->qrCode->generate('https://example.com')->toImage('path/to/file.svg'); } public function anotherExample() { // Generate a QR code $qrCode = app(QRCodeInterface::class)->generate('https://example.com')->toSvg(); // Generate a QR code with custom settings $qrCode = app(QRCodeInterface::class)->generate( content: 'https://example.com', dimension: new Dimension( size: 300, margin: 300 ), colorScheme: new ColorScheme( foreground: Color::Black, background: Color::White ) )->toSvg(); // Save a QR code to a file $qrCode = app(QRCodeInterface::class)->generate('https://example.com')->toImage('path/to/file.svg'); } }
配置选项
config/qr-code.php
文件允许您自定义库的各个方面。以下是可用选项的概述
return [ /** * QR Code assembler configuration */ 'assembler' => [ /** * QR Code assembler */ 'assembler' => Hennest\QRCode\Assembler\QRCodeAssembler::class, /** * QR Code assembler disk */ 'disk' => 'public', ], /** * QR Code default encoding */ 'encoding' => BaconQrCode\Encoder\Encoder::DEFAULT_BYTE_MODE_ECODING, /** * QR Code service */ 'qr-code' => Hennest\QRCode\Services\QRCode::class, /** * QR Code renderer configuration */ 'renderer' => [ /** * QR Code renderer */ 'renderer' => BaconQrCode\Renderer\ImageRenderer::class, /** * QR Code renderer backend */ 'backend' => BaconQrCode\Renderer\Image\SvgImageBackEnd::class, /** * QR Code renderer default style configuration */ 'style' => [ /** * QR Code renderer style */ 'style' => Hennest\QRCode\Configuration\RenderStyle::class, /** * QR Code renderer size */ 'size' => env('QR_CODE_SIZE', 300), /** * QR Code renderer margin */ 'margin' => env('QR_CODE_MARGIN', 4), /** * QR Code renderer color */ 'color' => [ /** * QR Code renderer foreground color */ 'foreground' => Hennest\QRCode\Enums\Color::Black, /** * QR Code renderer background color */ 'background' => Hennest\QRCode\Enums\Color::White, ], ], ], ];
主要配置选项
assembler.disk
:设置保存二维码的默认磁盘。renderer.style.size
:设置二维码的默认大小。renderer.style.margin
:设置二维码的默认边距。renderer.style.color.foreground
:设置二维码的前景色。renderer.style.color.background
:设置二维码的背景色。
贡献
欢迎贡献!请随时提交Pull Request。
许可
此库是开源软件,使用MIT许可。