2020-06-02

Craft CMS で QRCode を表示させてみる #craftcms

Craft CMS で QRCode を生成できるプラグイン QRCode を試してみた。

QRCode
https://plugins.craftcms.com/q...

使い方はドキュメントにある感じでシンプルに使うことができる。

こんな感じで記述すれば

<p><img src="{{ "example.com"|qrcode(100) }}"></p>

こんな感じでQRコードが表示される。

色々な用途に使えそう。

プラグインをインストールする

プラグインをインストールするのに結構手間取った。

Problem 1
    - kuriousagency/qrcode 1.0.0 requires endroid/qr-code ^3.5 -> satisfiable by endroid/qr-code[3.5.0, 3.5.1, 3.5.2, 3.5.3, 3.5.4, 3.5.5, 3.5.6, 3.5.7, 3.5.8, 3.5.9, 3.6.0, 3.6.1, 3.7.0, 3.7.1, 3.7.2, 3.7.3, 3.7.4, 3.7.5, 3.7.6, 3.7.7, 3.7.8, 3.7.9, 3.8.0].
    - kuriousagency/qrcode 1.0.1 requires endroid/qr-code ^3.5 -> satisfiable by endroid/qr-code[3.5.0, 3.5.1, 3.5.2, 3.5.3, 3.5.4, 3.5.5, 3.5.6, 3.5.7, 3.5.8, 3.5.9, 3.6.0, 3.6.1, 3.7.0, 3.7.1, 3.7.2, 3.7.3, 3.7.4, 3.7.5, 3.7.6, 3.7.7, 3.7.8, 3.7.9, 3.8.0].
    - kuriousagency/qrcode 1.0.2 requires endroid/qr-code ^3.5 -> satisfiable by endroid/qr-code[3.5.0, 3.5.1, 3.5.2, 3.5.3, 3.5.4, 3.5.5, 3.5.6, 3.5.7, 3.5.8, 3.5.9, 3.6.0, 3.6.1, 3.7.0, 3.7.1, 3.7.2, 3.7.3, 3.7.4, 3.7.5, 3.7.6, 3.7.7, 3.7.8, 3.7.9, 3.8.0].
    - kuriousagency/qrcode 1.0.3 requires endroid/qr-code ^3.5 -> satisfiable by endroid/qr-code[3.5.0, 3.5.1, 3.5.2, 3.5.3, 3.5.4, 3.5.5, 3.5.6, 3.5.7, 3.5.8, 3.5.9, 3.6.0, 3.6.1, 3.7.0, 3.7.1, 3.7.2, 3.7.3, 3.7.4, 3.7.5, 3.7.6, 3.7.7, 3.7.8, 3.7.9, 3.8.0].
    - endroid/qr-code 3.8.0 requires php >=7.2 -> your PHP version (7.2.30) overridden by "config.platform.php" version (7.0) does not satisfy that requirement.
    - endroid/qr-code 3.7.9 requires php >=7.2 -> your PHP version (7.2.30) overridden by "config.platform.php" version (7.0) does not satisfy that requirement.

PHPのバージョン的に 7.2 以上が必要なのだけど、 Craft が 7.0 と設定してるのが原因ぽい。

Don't fake php version in composer.json by ostark · Pull Request #27 · craftcms/craft
https://github.com/craftcms/cr...

これには理由があるとは思うのだけど、検証ということで composer.json を

"config": {
    "sort-packages": true,
    "optimize-autoloader": true,
    "platform": {
      "php": "7.0"
    }
  },
↓↓↓
  "config": {
    "sort-packages": true,
    "optimize-autoloader": true,
    "platform": {
      "php": "7.2"
    }
  },

こんな感じで変更するとことでインストールできた。

こういうエラーになったことがなかったので知らなかったのだけど、この辺も調べてみた方が良さそうだなー