endroid/qr-code-bundle

Endroid QR Code Bundle

资助包维护!
endroid

安装量: 6,558,764

依赖者: 17

建议者: 1

安全性: 1

星标: 280

关注者: 5

分支: 37

开放问题: 1

类型:symfony-bundle

5.0.2 2024-08-03 13:50 UTC

README

endroid 提供

Latest Stable Version Build Status Total Downloads Monthly Downloads License

此 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 许可证的约束。