PHP Qrcode Library (support laravel framework)
Introduction
This is package generate Qrcode using some services like google qrcode (currently, it only support google service). This package also support attaching logo into qrcode. In Laravel framework, it fully support for using facade, blade helper., (*1)
Reference https://developers.google.com/chart/infographics/docs/qr_code, (*2)
Installation
- This is require: php5-gd for write image.
Debian: apt-get install php5-gd
RedHat: yum install gd gd-devel php-gd
- Update require in
composer.json
file.
"vcode/qrcode": "dev-master"
composer update
composer require "vcode/qrcode":"dev-master"
LARAVEL USING
File: app/config/app.php
, (*3)
Provider:, (*4)
'providers' => array(
'Vcode\Qrcode\QrcodeServiceProvider',
)
Facade, (*5)
'aliases' => array(
'Qrcode' => 'Vcode\Qrcode\Facades\Qrcode',
)
Create configuration file using artisan, (*6)
$ php artisan config:publish vcode/qrcode
Using In Controller
$value = "https://github.com/tyanhly/vcode_qrcode";
//or for fully options
//$value = array(
// 'chs' => "250x250",
// 'cht' => "qr",
// 'chl' => "https://github.com/tyanhly/vcode_qrcode"
// 'chld'=> "H|1", // H(QML)|1, H|2, H|3, H|4, H|10, H|40,
// 'choe'=> "UTF-8" // UTF-8, Shift_JIS, ISO-8859-1
//);
/**
* @param array googleOption
* @param string $destinate
* @param string $logoPath
* @param float $ratioOfLogoOnQrcode
* @param int $qrCodeService
*/
//Qrcode::storageImage(array googleOption, string $destinate, string $logoPath, float $ratioOfLogoOnQrcode, int $qrCodeService);
Qrcode::storageImage($value, "/tmp/destination.png", "logo.png", 0.3);
/**
* @param array googleOption
* @param int $qrCodeService
*/
//Qrcode::render(array googleOption, int $qrCodeService);
Qrcode::render($value);
/**
* @param array googleOption
* @param string $logoPath
* @param float $ratioOfLogoOnQrcode
* @param int $qrCodeService
*/
//Qrcode::renderBase64(array googleOption, string $logoPath, float $ratioOfLogoOnQrcode, int $qrCodeService);
Qrcode::renderBase64($value, "logo.png");
/**
* @param array googleOption
* @param string $logoPath
* @param float $ratioOfLogoOnQrcode
* @param int $qrCodeService
*/
//Qrcode::renderBase64Dome(array googleOption, string $logoPath, float $ratioOfLogoOnQrcode, int $qrCodeService);
Qrcode::renderBase64Dom($value, "logo.png");
Using the Blade helper
@qrcode("https://github.com/tyanhly/vcode_qrcode")
@qrcodeBase64Dom("https://github.com/tyanhly/vcode_qrcode", "logo.png", 0.5)
<img src="data:image/png;base64,@qrcodeBase64("https://github.com/tyanhly/vcode_qrcode", "logo.png", 0.5)" />
Using like php library
//Please, reference <this source>/example for more detail
include 'vendor/autoload.php';
$qrcode = new Vcode\Qrcode\Qrcode(array(
'qrcode::google_config_default' => array(
'chs' => "250x250",
'cht' => "qr",
'chld'=> "H|1", // H(QML)|1, H|2, H|3, H|4, H|10, H|40,
'choe'=> "UTF-8" // UTF-8, Shift_JIS, ISO-8859-1
),
'qrcode::template_simple' => './template',
'qrcode::storage_dir' => '/tmp'
));
$value = "MECARD:N:XXXXX;ADR:xxx xxxxx xxxxxx xx xxx city;"
. "TEL:+XXXXXXXXX;EMAIL:xxxxx@gmail.com;;";
//$qrcode->render($value);
$qrcode->renderBase64Dom($value, "logo.png", 0.7);
Example
- https://github.com/tyanhly/vcode_qrcode/tree/master/example
Change Log
v1.0.0
v1.0.1
- Base64 encoding
- Storage image
v1.1.0
- Logo attach
- Support like a library, not only for laravel.