مولد رموز QR بلغة PHP: نظرة عامة على أفضل المكتبات
أصبحت رموز QR جزءًا لا يتجزأ من الويب الحديث. تُستخدم للوصول السريع إلى الروابط، ونقل بيانات الاتصال، والمصادقة في الخدمات، وحتى للدفع. إذا كنت تطور بلغة PHP وترغب في دمج توليد رموز QR في موقعك، فلست بحاجة إلى إعادة اختراع العجلة — فهناك مكتبات مجربة تنجز هذه المهمة ببضعة أسطر من الكود.
في هذه المقالة، سنستعرض ثلاثة حلول شائعة: المكتبة الكلاسيكية phpqrcode، والمكتبة الحديثة endroid/qr-code، والمكتبة الخفيفة chillerlan/php-qrcode. ستتعلم كيفية تثبيت كل منها، وتوليد رمز QR، وعرضه على الشاشة أو حفظه في ملف.
1. مكتبة phpqrcode (الخيار الكلاسيكي)
هذه واحدة من أولى المكتبات لتوليد رموز QR بلغة PHP. لا تتطلب تبعيات خارجية، وتعمل "فورًا"، ولا تزال تُستخدم في العديد من المشاريع القديمة. العيب الرئيسي هو عدم دعم معايير PSR الحديثة و Composer (على الرغم من إمكانية تثبيتها يدويًا).
التثبيت
قم بتنزيل الأرشيف من SourceForge واستخرجه في مجلد مشروعك. قم بتضمين الملف qrlib.php:
require_once 'phpqrcode/qrlib.php';مثال على التوليد والإخراج بصيغة PNG
<?phprequire_once 'phpqrcode/qrlib.php';
// البيانات المراد ترميزها$text = 'https://pythonlib.ru';
// مسار حفظ الملف$filename = 'qrcode.png';
// توليد رمز QR بمستوى تصحيح L (7%) وحجم 10QRcode::png($text, $filename, QR_ECLEVEL_L, 10, 2);
// عرض الصورة في المتصفحheader('Content-Type: image/png');QRcode::png($text, false, QR_ECLEVEL_L, 10, 2);?>المعامل الثاني false يعني أن الصورة تُعرض مباشرة في المتصفح، بدلاً من حفظها في ملف.
2. مكتبة endroid/qr-code (حديثة ومرنة)
هذا هو الحل الأكثر شيوعًا على Packagist. تدعم المكتبة PSR-4، وتتكامل بسهولة مع أي إطار عمل (Laravel، Symfony)، وتتيح تخصيص الألوان والحجم والهوامش وحتى إضافة شعار.
التثبيت عبر Composer
composer require endroid/qr-codeمثال أساسي على التوليد
<?phprequire 'vendor/autoload.php';
use Endroid\\QrCode\\QrCode;use Endroid\\QrCode\\Writer\\PngWriter;
$qrCode = QrCode::create('https://pythonlib.ru') ->setSize(300) ->setMargin(10);
$writer = new PngWriter();$result = $writer->write($qrCode);
// عرض في المتصفحheader('Content-Type: '.$result->getMimeType());echo $result->getString();?>رمز QR مع شعار
<?phpuse Endroid\\QrCode\\Logo\\Logo;use Endroid\\QrCode\\Color\\Color;
$logo = Logo::create('path/to/logo.png') ->setResizeToWidth(60);
$qrCode = QrCode::create('https://pythonlib.ru') ->setSize(400) ->setForegroundColor(new Color(0, 123, 255)); // لون أزرق
$writer = new PngWriter();$result = $writer->write($qrCode, $logo);
header('Content-Type: image/png');echo $result->getString();?>3. مكتبة chillerlan/php-qrcode (خفيفة وسريعة)
خيار ممتاز إذا كنت بحاجة إلى تبعيات قليلة وأداء عالٍ. تدعم المكتبة جميع أوضاع الترميز القياسية، والأقنعة، ومستويات تصحيح الأخطاء. مثالية للمشاريع عالية التحميل.
التثبيت
composer require chillerlan/php-qrcodeمثال على التوليد
<?phprequire 'vendor/autoload.php';
use chillerlan\\QRCode\\QRCode;use chillerlan\\QRCode\\QROptions;
$options = new QROptions([ 'outputType' => QRCode::OUTPUT_IMAGE_PNG, 'eccLevel' => QRCode::ECC_L,