Skip to content

4.0.0 — PHP 8.3–8.5, GD-native rendering & modernization

Latest

Choose a tag to compare

@tonydspaniard tonydspaniard released this 18 Jun 16:21
· 6 commits to master since this release
3eeba77

4.0.0 — PHP 8.3–8.5 support, GD-native rendering & modernization.

⚠️ Major release with breaking changes. Read the Upgrade Guide before upgrading from 3.x.

Delivered by #75 (version corrected in #76) · Epic #74 · Closes #73, #68, #69, #34, #32.

Added

  • Pure-GD render backend Da\QrCode\Renderer\GdImageBackEndPNG/JPG no longer require ImageMagick (only ext-gd). Fixes the Windows RegistryKeyLookupFailed 'CoderModulesPath' error (#68).
  • Framework-agnostic PSR-15 Da\QrCode\Bridge\Psr\QrCodeAction for Yii3 and any PSR-15 app (Mezzio, Slim, …).
  • vCard PHOTO via Base64 / data-URI / local file (#69); MeCard ORG field (#34); troubleshooting guide answering #32.

Changed

  • Requires PHP 8.3 / 8.4 / 8.5 (dropped < 8.3).
  • Dropped marc-mabe/php-enumEnums\* keep the same constants (no API change).
  • bacon/bacon-qr-code^3, khanamiryan/qrcode-detector-decoder^2.
  • PNG/JPG render with GD by default; ImageMagick is opt-in via the writer constructor.
  • Framework adapters reorganized under Da\QrCode\Bridge\<Framework>\ (Yii2 / Laravel / Psr); dropped redundant Laravel class-name prefixes.
  • StyleManager::getGradientTye()getGradientType() (deprecated alias kept); QrCode::getGradientType() now returns a GradientType.
  • Modern toolchain: php-cs-fixer v3, PHPStan, CI matrix on 8.3/8.4/8.5.

Fixed

  • Radial / inverse-diagonal gradients rendering as solid black.
  • Bridge\Laravel\QrCodeFactory works standalone when Laravel's config() is unbound.

Full changelog: CHANGELOG.md · Upgrade: UPGRADE-4.0.md