人気のPHP WEBアプリケーションフレームワークLaravelのTips。 (Laravelアプリの初期化)composer create-project laravel/laravel my-app

PHPのLaravelでURLをQRコードにするQRコード画像を生成するパッケージ

最短手順は「インストール →(自動登録)→ 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返却・保存・ダウンロードまで一通り実装できます。

No.2682
05/12 15:39

edit