laravelでQRコードを作成する



スマートフォンが普及してから、QRコードに触れる機会が より身近になりました。

以前は 画像表示やURLリンクに使用されていたのが、
現在はログイン認証や承認に使われたりなど、
トレンドの変化に伴って、QRコードの使用方法も変わってきました。

今回はPHPのLaravelフレームワークのプラグイン「simple-qrcode」を使って
QRコードをジェネレートします。

simple-qrcode


インストール

composer.jsonのrequireの部分に以下のパッケージを追加してインストールします

"require": {
    "simplesoftwareio/simple-qrcode": "1.3.*"
}


config/app.php内のproviders配列内にサービスプロバイダーを追加

'providers' => [
  ....
  SimpleSoftwareIO\QrCode\QrCodeServiceProvider::class,
  // Laravel 4, 5.0.*の場合は以下のように
  // 'SimpleSoftwareIO\QrCode\QrCodeServiceProvider'
],


続いてconfig/app.php内のaliases配列内にFacadeの追加

'aliases' => [
 ...
 'QrCode' => SimpleSoftwareIO\QrCode\Facades\QrCode::class
 // Laravel 4, 5.0.*
 // 'QrCode' => 'SimpleSoftwareIO\QrCode\Facades\QrCode'
]

 

主な使い方

Facadeで登録しているのでBladeテンプレート内でも簡単に呼び出せます。
また、SVG形式で発行されるので ブラウザでそのまま表示することができます。

// 100×100のサイズでQRコードを作成
{!! QrCode::size(100)->generate('Your content') !!}


SVG形式以外で書き出したい場合はフォーマットも変更可能

// png, eps, svgサポート
// public/img/qr.pngとして保存
QrCode::format('png')
      ->size(300) // 300×300
      ->generate('http://co.bsnws.net/', public_path('/img/qr.png'));

*実際に生成したQRコード

文字コードも設定可能です。UTF-8を始め様々な文字コードに対応しています。

QrCode::encoding('SHIFT-JIS')->size(100)
  ->generate("SHIFT-JISにも対応してるので漢字も問題なく使用可能");


LINEのQRコードで目にすることがありますが、QRコード内に画像を入れることも出来ます。

// public/img/log.png とマージ 
// 第二引数で元画像の大きさを指定出来ます *30%
QrCode::format('png')->size(300)->merge('/public/img/logo.png', .3)
      ->errorCorrection('H')
      ->generate('http://co.bsnws.net/', public_path('/img/logoQR.png'));

*TwitterのTOP画像とマージしてみました

日本ではあまり馴染みがないですが、SMS送信( ショートメール) 用のQRコードも生成出来ます。

QrCode::SMS('000-0000-0000', 'この本文が送信( テストメッセージ )');


最近のルーター本体にシールが見られるような Wi-Fi用のQRコードも作成可能

QrCode::wiFi([
    'encryption' => 'WPA/WEP',
    'ssid' => 'Your SSID',
    'password' => 'Your Password',
    'hidden' => 'Whether the network is a hidden SSID or not.'
    ]);


Summary

主な使い方は上記の様になります。

「simple-qrcode」は簡単にQRコードが生成出来るので、
Laravelでキャンペーン用の特設サイトや帳簿システムを作る際は一度検討してみてください!

 

この記事のカテゴリ
プログラミング

この記事のタグ