endroid / qr-code-bundle
Endroid QR Code Bundle
Requires
- php: ^8.1
- endroid/installer: ^1.2.2
- endroid/qr-code: ^5.0
- symfony/framework-bundle: ^5.4||^6.4||^7.0
- symfony/twig-bundle: ^5.4||^6.4||^7.0
- symfony/yaml: ^5.4||^6.4||^7.0
Requires (Dev)
- endroid/quality: dev-main
Suggests
- roave/security-advisories: Avoids installation of package versions with vulnerabilities
This package is auto-updated.
Last update: 2024-09-03 13:59:59 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 label_text: 'This is the label' label_font_path: '%kernel.project_dir%/vendor/endroid/qr-code/assets/noto_sans.otf' label_font_size: 20 label_alignment: 'center' custom: writer: Endroid\QrCode\Writer\SvgWriter writer_options: exclude_xml_declaration: true # default: false data: 'This is customized QR code' size: 300 encoding: 'UTF-8' error_correction_level: 'low' # 'low', 'medium', 'quartile', or 'high' round_block_size_mode: 'margin' logo_path: '%kernel.project_dir%/vendor/endroid/qr-code/tests/assets/symfony.png' logo_resize_to_width: 150 logo_punchout_background: true validate_result: 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') }}" /> {# You can access the width and height via the matrix #} {% set qrCode = qr_code_result('My QR Code') %} <img src="{{ qrCode.dataUri }}" width="{{ qrCode.matrix.outerSize }}" />
版本控制
版本号遵循 MAJOR.MINOR.PATCH 体系结构。向后兼容性破坏性更改将尽可能少,但请注意,这些更改可能发生。在生产环境中锁定依赖关系并在升级时测试您的代码。
许可证
此源代码受文件 LICENSE 中包含的 MIT 许可证的约束。