vladpak1 / too-simple-qr
chillerlan/php-qrcode 库的包装器,让您轻松生成各种 QR 码。
1.0.1
2023-09-16 05:30 UTC
Requires
- php: ^8.0
- ext-gd: *
- ext-mbstring: *
- chillerlan/php-qrcode: dev-main#c8c37a4e36300f1fc4a7fb44ee22186eac1e60a4 as 1.0.0
- intervention/image: ^2.7
- libern/qr-code-reader: ^1.0
Requires (Dev)
- dominikb/composer-license-checker: ^2.4
- friendsofphp/php-cs-fixer: ^3.16
- mockery/mockery: ^1.5
- phpunit/php-code-coverage: ^9.2
- phpunit/phpunit: ^9.6
This package is auto-updated.
Last update: 2024-09-16 07:55:01 UTC
README
vladpak1\TooSimpleQR
TooSimpleQR 是在优秀的 chillerlan/php-qrcode 之上的包装器,简化了 QR 码的生成,更注重定制化和接口的易用性。
这个小型宠物项目远非完美,因为我还是一个正在学习绳索的新手开发者。请在使用时考虑到我的有限经验,并自行承担风险。
如果您想在严肃的项目中生成 QR 码,最好使用 chillerlan/php-qrcode。
使用此库创建的 QR 码示例
需求
- PHP 8.0+
- Composer
- GD 或 Imagick
安装
{ "require": { "vladpak1/too-simple-qr": "*" }, "minimum-stability": "dev", "prefer-stable": true }
计划迁移到稳定版本,所以很快这个步骤将不再需要。
或者如果您已经将最小稳定性设置为 dev,您可以简单地运行
composer require vladpak1/too-simple-qr
使用示例
use vladpak1\TooSimpleQR\QRFactory; use vladpak1\TooSimpleQR\OutputConstants; use vladpak1\TooSimpleQR\Image\Logo; // Load composer require_once __DIR__ . '/vendor/autoload.php'; $qr = \vladpak1\TooSimpleQR\QRFactory::QRCode(); $settings = \vladpak1\TooSimpleQR\QRFactory::QRSettings(); $logo = new Logo(); $logo->setByPath(Logo::TWITTER_LOGO); $settings ->setOutput(OutputConstants::OUTPUT_PNG) ->setSize(500) // Size in pixels. ->setBackgroundColor('#ffffff') // Background color in HEX format. ->setMargin(50) // Margin in pixels. ->setFinderColor('#1d9bf0') // Finder color in HEX format. ->setDataColor('#3284bc') // Data color in HEX format. ->setCorrectionLevel(OutputConstants::CORRECTION_LEVEL_H) // Correction level. ->setCircularModules(true) // Round modules. ->setCircleRadius(0.75) // Circle radius. ->setLogo($logo) // Logo. ->setCustomFinderShape(OutputConstants::SHAPE_CIRCLE); // Custom finder shape. $qrCodeImage = $qr ->setData('Hello World!') ->setSettings($settings) ->render(); // Now we can save or directly output (as HTML) the QR code. $qrCodeImage->echo();
因此,我们得到
我们还可以通过添加,例如,渐变来扭曲 QR 码
->setBackgroundGradient('#FFD8D8', '#FFF9F9', Gradient::DIRECTION_BOTTOM_TO_TOP);
需要快速生成 QR 码吗?
考虑使用预设 - 生成 QR 码的预定义设置。
您可以通过扩展 vladpak1\TooSimpleQR\Preset\AbstractPreset
类轻松创建自己的预设。
使用预设的示例
$preset = new \vladpak1\TooSimpleQR\Preset\Presets\InstagramPreset('Hello World!'); // You can also set the driver and output interface for the preset. $preset ->setDriver(\vladpak1\TooSimpleQR\OutputConstants::DRIVER_GD) ->setOutput(\vladpak1\TooSimpleQR\OutputConstants::OUTPUT_PNG); // We get a branded Instagram QR code. $preset->render()->save('path/to/qr.png');
GD 或 Imagick?
此库支持 GD 或 Imagick,但某些设置仅由 Imagick 支持。可能在未来,我会使一切更加一致,驱动程序之间的差异不会那么明显。然而,目前推荐使用 Imagick。
库将根据您的服务器上安装的内容自动选择要使用的驱动程序,优先考虑 Imagick。
但您也可以强制指定驱动程序
$qr->setDriver(OutputConstants::DRIVER_GD);
测试
TooSimpleQR 使用 PHPUnit 进行测试。目前测试非常少,主要由于包架构的问题。
要运行测试,请使用以下命令
composer test
许可证
TooSimpleQR 在 MIT 许可证下授权。