最短手順は「インストール →(自動登録)→ Bladeやコントローラで QrCode ファサードを呼ぶ」です。SVG表示は即使え、PNG出力は GD/Imagick が必要です。
インストール
- 実行: composer require simplesoftwareio/simple-qrcode(v4系が推奨)。
- Laravelの自動パッケージ発見でプロバイダ/エイリアス登録は不要(古い記事の手動追記は基本不要)。
もっとも簡単な表示(SVG)
- Bladeにそのまま埋め込み
・{!! QrCode::generate('https://example.com') !!}(デフォルトはサイズ100のSVG)。
- サイズ指定
・{!! QrCode::size(300)->generate($url) !!}。
PNGで
表示したい場合
- PNGをBase64データURIにしてimgで表示
・
- 注意: PNG生成には GD もしくは Imagick が必要(Dockerなら gd/imagickの導入が必要)。
・例: pecl install imagick、docker-php-ext-install gd などで有効化。
コントローラで使う例
- コントローラ
・use SimpleSoftwareIO\QrCode\Facades\QrCode; を宣言し、$svg = QrCode::size(200)->generate($url); をビューへ渡す。
- ビュー
・{!! $svg !!} を出力すればSVGが表示される。
よく使うオプション
- 形式: format('png'|'svg'|'eps')(デフォルトSVG)。
- サイズ: size(100〜)。
- 誤り訂正: errorCorrection('L'|'M'|'Q'|'H')。
- 色: color(r,g,b)(PNG時はGD/Imagick必須)。
ダウンロード/保存
- ダウンロード用ルートを用意し、生成結果をレスポンスとして返却(例: PNGバイナリをレスポンス、Content-Dispositionでattachment)。
- Storage::put でSVG/PNGを保存し、配布やキャッシュに利用可能。
トラブル対策
- 画像生成でエラー: GD/Imagick未導入が典型、拡張を入れて再試行。
- 古い記事の手動設定: v4は自動ロードのため不要なことが多い。
この流れで、URLを渡すだけで画面表示・API返却・保存・ダウンロードまで一通り実装できます。