PHP系列 | PHP5.6 安装 endroid/qr-code 遇到的问题
Posted tinywan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP系列 | PHP5.6 安装 endroid/qr-code 遇到的问题相关的知识,希望对你有一定的参考价值。
官方库地址:https://packagist.org/packages/endroid/qr-code
php5.6 的最高版本为:2.5.1
通过composer安装
composer require endroid/qr-code 2.5.1
安装结果
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 8 installs, 0 updates, 0 removals
- Installing myclabs/php-enum (1.7.2): Downloading (100%)
- Installing symfony/polyfill-ctype (v1.12.0): Downloading (100%)
- Installing symfony/property-access (v2.8.50): Downloading (100%)
- Installing bacon/bacon-qr-code (1.0.3): Downloading (100%)
- Installing symfony/options-resolver (v2.8.50): Downloading (100%)
- Installing endroid/qr-code (2.5.1): Downloading (100%)
- Installing topthink/framework (v5.1.38.1): Downloading (100%)
bacon/bacon-qr-code suggests installing ext-gd (to generate QR code images)
使用
use Endroid\\QrCode\\QrCode;
$qrCode = new QrCode(‘Life is too short to be generating QR codes‘);
header(‘Content-Type: ‘.$qrCode->getContentType());
echo $qrCode->writeString();
出错了
syntax error, unexpected ‘:‘, expecting ‘;‘ or ‘ php-enum/src/Enum.php:88
语法解析错误呀。应该是PHP7的三元运算符搞得鬼
也就是这个依赖库版本的问题:
myclabs/php-enum (1.7.2): Downloading (100%)
查看该依赖库需要的PHP版本
可以很清楚的看到,安装endroid/qr-code库使用默认安装的依赖库包都是最新的,需要PHP7的
如何解决问题?
重新找一个myclabs/php-enum安装包使用于PHP5.6的
指定版本安装
composer require myclabs/php-enum 1.6.6
再次生产二维码,成功了。
小结:针对PHP5.6版本使用 endroid/qr-code 二维码库,需要在composer.json文件中添加包
"endroid/qr-code": "2.5.1",
"myclabs/php-enum": "1.6.6"
其实在解决问题之前,我总以为版本太高的问题,甚至把endroid/qr-code 的版本都搞到1.9 去了
没有解决问题啊
以上是关于PHP系列 | PHP5.6 安装 endroid/qr-code 遇到的问题的主要内容,如果未能解决你的问题,请参考以下文章
thinkphp5.1 endroid/qrcode 二维码生成