tiitoo / qr-code-bundle
Endroid QR Code Bundle
Requires
- php: ^8.0
- endroid/installer: ^1.2.2
- endroid/qr-code: ^4.8.1
- symfony/framework-bundle: ^5.4||^6.0
- symfony/twig-bundle: ^5.4||^6.0
- symfony/yaml: ^5.4||^6.0
Requires (Dev)
- endroid/quality: dev-master
Suggests
- roave/security-advisories: Avoids installation of package versions with vulnerabilities
This package is auto-updated.
Last update: 2024-09-20 02:00:45 UTC
README
由 endroid 编写
此 Symfony 扩展允许您使用 endroid/qr-code 库生成 QR 码。它提供了以下功能:
- 配置默认设置(如图像大小、默认写入器等)
- 支持多个配置和通过别名注入
- 通过 URL(如 /qr-code//Hello)生成定义配置的 QR 码
- 使用专用函数直接从 Twig 生成 QR 码或 URL
安装
使用 Composer 安装库。同时,如果您想生成图像,请确保已启用并配置了 GD 扩展。
composer require endroid/qr-code-bundle
当您使用 Symfony 时,installer 会确保服务自动连接。如果不是这种情况,您可以在 .install/symfony
文件夹中找到配置文件。
如果您不想让安装程序创建自动配置文件,可以像这里描述的那样禁用它。
配置
该包使用构建器来创建 QR 码。构建器应用的默认参数可以通过配置可选地覆盖,并且可以定义多个配置(因此构建器)。
endroid_qr_code: default: writer: Endroid\QrCode\Writer\PngWriter data: 'This is customized QR code' # Label is not implemented for SvgWriter labelText: 'This is the label' labelFontPath: '%kernel.project_dir%/vendor/endroid/qr-code/assets/noto_sans.otf' labelFontSize: 20 labelAlignment: 'center' custom: writer: Endroid\QrCode\Writer\SvgWriter writerOptions: exclude_xml_declaration: true # default: false data: 'This is customized QR code' size: 300 encoding: 'UTF-8' errorCorrectionLevel: 'low' # 'low', 'medium', 'quartile', or 'high' roundBlockSizeMode: 'margin' logoPath: '%kernel.project_dir%/vendor/endroid/qr-code/tests/assets/symfony.png' logoResizeToWidth: 150 logoPunchoutBackground: true validateResult: false
使用构建器
每个配置都产生一个构建器,可以注入到您的类中。例如,可以像这样注入上面的示例中的自定义构建器,并且可以按照以下方式覆盖默认配置。
use Endroid\QrCode\Builder\BuilderInterface; public function __construct(BuilderInterface $customQrCodeBuilder) { $result = $customQrCodeBuilder ->size(400) ->margin(20) ->build(); }
QR 码响应
该包还提供了一个响应对象,以简化通过自动保存到内容并设置正确的内容类型来渲染结果图像。
use Endroid\QrCodeBundle\Response\QrCodeResponse; $response = new QrCodeResponse($result);
通过 URL 生成
该包提供了一个控制器,允许您通过打开 URL(如 /qr-code/{builder}/{data})简单地生成 QR 码。您可以在路由文件中配置前缀,并通过查询字符串传递任何现有选项。
通过 Twig 生成
该包提供了一个用于生成 QR 码 URL、路径或数据 URI 的 Twig 扩展。您可以使用第二个参数指定要使用的构建器。
<img src="{{ qr_code_path('My QR Code') }}" /> <img src="{{ qr_code_url('My QR Code') }}" /> <img src="{{ qr_code_data_uri('My QR Code') }}" /> {# You can specify the builder via the second parameter #} <img src="{{ qr_code_data_uri('My QR Code', 'custom') }}" />
版本控制
版本号遵循 MAJOR.MINOR.PATCH 方案。向后兼容性破坏性更改将保持在最低限度,但请注意,这些更改可能发生。在生产中锁定依赖关系,并在升级时测试您的代码。
许可
此源代码受文件 LICENSE 中捆绑的 MIT 许可证的约束。