Installs: 517

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 3

Forks: 4


1.0.3 2017-08-17 19:22 UTC


The BushidoIOQRCodeBundle adds QRCode generation support in Symfony2.

Features included:

  • URL and BASE64 encoded image generation
  • Twig filter and function support
  • Cacheable images for less CPU usage
  • Configurable cache expiration age for both http and https
  • Cache and logs path can be located inside or outside Symfony2 app folder tree
  • Absolute or relative URL generation
  • PNG maximum image size definition (default 1024 pixels)
  • Configurable find mask setup (best mask, random mask and default mask value)


Step 1: Composer

Add the following require line to the composer.json file:

    "require": {
        "bushidoio/qrcode-bundle": "dev-master"

And actually install it in your project using Composer:

php composer.phar install

You can also do this in one step with this command:

$ php composer.phar require bushidoio/qrcode-bundle "dev-master"

Step 2: Enable the bundle

Enable the bundle in the kernel:

// app/AppKernel.php

public function registerBundles()
    $bundles = array(
        // ...
        new BushidoIO\QRCodeBundle\BushidoIOQRCodeBundle(),

Step 3: Enable the route

Add this to your routing configuration in app/config/routing.yml:

    resource: "@BushidoIOQRCodeBundle/Controller/"
    type:     annotation


You can configure some options in app/config/config.yml. Those are the default values:

    cacheable: true
    cache_dir: ~
    logs_dir: ~
    find_best_mask: true
    find_from_random: false
    default_mask: 2
    png_maximum_size: 1024
    absolute_url: true
    http_max_age: 600
    https_max_age: 600

Usage examples

You can use Twig functions or filtes to create URL or BASE64 encoded images. If no parameters are used the default options for the image are size 3 (87x87 pixels) and PNG format.

<img src="{{ bushidoio_qrcode_url('Text to encode') }}" />

<img src="{{ bushidoio_qrcode_url('Text to encode', 5) }}" />

<img src="{{ bushidoio_qrcode_url('Text to encode', 5, 'png') }}" />

<img src="{{ bushidoio_qrcode_base64('Text to encode') }}" />

<img src="{{ bushidoio_qrcode_base64('Text to encode', 5) }}" />

<img src="{{ bushidoio_qrcode_base64('Text to encode', 5, 'png') }}" />

<img src="{{ 'Text to encode'|bushidoio_qrcode_url }}" />

<img src="{{ 'Text to encode'|bushidoio_qrcode_url(5) }}" />

<img src="{{ 'Text to encode'|bushidoio_qrcode_url(5, 'png') }}" />

<img src="{{ 'Text to encode'|bushidoio_qrcode_base64 }}" />

<img src="{{ 'Text to encode'|bushidoio_qrcode_base64(5) }}" />

<img src="{{ 'Text to encode'|bushidoio_qrcode_base64(5, 'png') }}" />


This bundle is under the MIT license. See the complete license in the bundle:


This bundle uses PHP QR Code encoder under the hood. PHP QR Code is distributed under LGPL 3. Copyright (C) 2010 Dominik Dzienia See complete license in:


PHP QR Code encoder is a PHP implementation of QR Code 2-D barcode generator. It is pure-php LGPL-licensed implementation based on C libqrencode by Kentaro Fukuchi.