simplesoftwareio/simple-qrcode
Laravel-friendly QR code generator built on BaconQrCode. Create PNG/SVG QR codes with a fluent API—set size, colors, margins, error correction, merge images, and output inline or save to files for apps, tickets, and more.
Simple QrCode هو غلاف سهل الاستخدام لإطار عمل Laravel الشهير استنادًا إلى العمل الرائع الذي يقدمه Bacon/BaconQrCode. أنشأنا واجهة مألوفة و سهلة التثبيت لمستخدمي لارافل

قم بالترقية من V2 أو V3 عن طريق ملف composer.json إلى ~4
يجب تثبيت امتداد PHP الخاص بـ imagick إذا كنت تخطط لاستخدام تنسيق صورة png.
كان هناك خطأ عند إنشاء 4.1.0 و السماح ل للتغيرات التي حدثت للفرع الرئيسي. دالة
generateالآن ترجع حالةIllluminate\Support\HtmlStringإذا كنت تستخدم لارافل. إطلع على https://github.com/SimpleSoftwareIO/simple-qrcode/issues/205 لمزيد من التفاصيل
كانت هنا مشكلة مع واجهة لارافل في الإصدار ال3 التي أحدثت بعض المشاكل في التحميل. الطريقة الوحيدة لإصلاح هذا هو الإعتماد على الإصدار الرابع من الحزمة. إذا أنت من الإصدار V2 لا يوجد اي حاجة لتغيير الكود. التغييرات الآتية فقط تشمل الإصدار الثالث V3
جميع الإشارات لواجهة QrCode تحتاج لتغيير الآتي:
use SimpleSoftwareIO\QrCode\Facades\QrCode;
قم بتشغيل composer require simplesoftwareio/simple-qrcode "~4" لإضافة الحزمة.
لارافل ستقوم تلقائيا بتنصيب الحزمة.
واحدة من العناصر التي تستخدم هذه الحزمة لأجل الحصول على QrCodes في كل عروض الطباعة. هذه الخاصية تسمح للمستخدم للرجوع إلى الصفحة الأصلية بعد أن تمت طباعة الكود. حصلنا على هذه النتيجة عن طريق إضافة التالي لتذييل الصفحة footer.blade.php
<div class="visible-print text-center">
{!! QrCode::size(100)->generate(Request::url()); !!}
<p>Scan me to return to the original page.</p>
</div>
ممكن ان تضمن الqrcode داخل بريد إلكتروني للسماح لمستخدميك بعمل مسح سريع على qrcode. التالي هو مثال لكيفية عمل هذا بإستخدام إطار العمل لارافل.
//Inside of a blade template.
<img src="{!!$message->embedData(QrCode::format('png')->generate('Embed me into an e-mail!'), 'QrCode.png', 'image/png')!!}">
// جميع الأمثلة التالية تفترض أن واجهة Qrcode تم إستدعائها.
// واجهة Qrcode يتم إستدعائها تلقائيا بالنسبة لمستخدمي لارافل
use SimpleSoftwareIO\QrCode\Facades\QrCode;
يعد استخدام QrCode Generator أمرًا سهلاً للغاية. أبسط شكل للكود هو:
use SimpleSoftwareIO\QrCode\Facades\QrCode;
QrCode::generate('Make me into a QrCode!');
هذا سيحول الكود إلى QrCode يحمل العبارة التالية: "Make me into a QrCode!"

(string $data, string $filename = null)Generate تستخدم لإنشاء QrCode
QrCode::generate('Make me into a QrCode!');
Generate بشكل افتراضي سيعيد سلسلة صورة SVG. يمكنك طباعة هذا مباشرة في متصفح حديث داخل نظام Laravel's Blade باستخدام ما يلي:
{!! QrCode::generate('Make me into a QrCode!'); !!}
طريقة "generate" لها معلمة ثانية ستقبل اسم ملف ومسار لحفظ رمز الاستجابة السريعة.
QrCode::generate('Make me into a QrCode!', '../public/qrcodes/qrcode.svg');
(string $format)ثلاثة تنسيقات مدعومة حاليا ؛ png, eps, و svg . لتغيير التنسيق استخدم الكود التالي:
QrCode::format('png'); //Will return a png image
QrCode::format('eps'); //Will return a eps image
QrCode::format('svg'); //Will return a svg image
imagickمطلوبة لإنشاء إمتدادpng
(int $size)يمكنك تغيير حجم رمز الاستجابة السريعة باستخدام طريقةsize. ما عليك سوى تحديد الحجم المطلوب بالبكسل باستخدام الصيغة التالية:
QrCode::size(100);
![]()
(int $red, int $green, int $blue, int $alpha = null)كن حذرًا عند تغيير لون رمز QrCode ، حيث يواجه بعض القراء صعوبة بالغة في قراءة رموز QrCode بالألوان.
يجب التعبير عن كل الألوان في RGBA (أحمر أخضر أزرق ألفا). يمكنك تغيير لون رمز الاستجابة السريعة باستخدام ما يلي:
QrCode::color(255, 0, 0); // Red QrCode
QrCode::color(255, 0, 0, 25); //Red QrCode with 25% transparency

(int $red, int $green, int $blue, int $alpha = null)يمكنك تغيير لون خلفية رمز QrCode عن طريق استدعاء دالة backgroundColor.
QrCode::backgroundColor(255, 0, 0); // Red background QrCode
QrCode::backgroundColor(255, 0, 0, 25); //Red background QrCode with 25% transparency

$startRed, $startGreen, $startBlue, $endRed, $endGreen, $endBlue, string $type)يمكنك تطبيق التدرج اللوني في الQrcode عن طريق إستدعاء الدالة gradient
يتم دعم أنواع التدرجات اللونية التالية:
| النوع | مثال |
|---|---|
vertical |
![]() |
horizontal |
![]() |
diagonal |
![]() |
inverse_diagonal |
![]() |
radial |
![]() |
(int $eyeNumber, int $innerRed, int $innerGreen, int $innerBlue, int $outterRed = 0, int $outterGreen = 0, int $outterBlue = 0)ربما تريد تغيير لون العين بإستخدم دالة eyeColor.
QrCode::eyeColor(0, 255, 255, 255, 0, 0, 0); // Changes the eye color of eye `0`
| رقم العين | مثال |
|---|---|
0 |
![]() |
1 |
![]() |
2 |
![]() |
(string $style, float $size = 0.5)يمكن تبديل النمط بسهولة بـsquare أو dot أوround. سيؤدي هذا إلى تغيير الكتل داخل
سيأثر المعامل الثاني للدالة على الحجم الخاص بالنقاط و الإستدارة
التنسيق
QrCode::style('dot'); // Uses the `dot` style.
| التنسيق | مثال |
|---|---|
square |
|
dot |
![]() |
round |
![]() |
(string $style)العين التي بداخل الQrcode تدعم طريقتين مختلفيتين في التنسيق square و circle
QrCode::eye('circle'); // Uses the `circle` style eye.
| Style | Example |
|---|---|
square |
|
circle |
![]() |
(int $margin)القدرة على تغيير الهامش حول QrCode مدعومة أيضًا. ما عليك سوى تحديد الهامش المطلوب باستخدام الصيغة التالية:
QrCode::margin(100);
(string $errorCorrection)من السهل تغيير مستوى تصحيح الخطأ. فقط استخدم الصيغة التالية:
QrCode::errorCorrection('H');
الخيارات التالية تم دعمها في دالة errorCorrection:
| تصحيح الخطأ | الضمان المتوفر |
|---|---|
| L | 7% يمكن استعادة الكلمات المشفرة. |
| M | 15% يمكن استعادة الكلمات المشفرة. |
| Q | 25% يمكن استعادة الكلمات المشفرة. |
| H | 30% يمكن استعادة الكلمات المشفرة. |
كلما إستخدمت نسبة تصحيح الخطأ أكثر, لكما قلت مصداقية ال Qrcode في إسترجاع البيانات المسجلة داخله إطلع أكثر حول تصحيح الخطأ.
(string $encoding)قم بتغيير ترميز الأحرف المستخدم لبناء QrCode. افتراضيًا ، يتم تحديد "ISO-8859-1" باعتباره المشفر. اقرأ المزيد عن ترميز الحروف.
يمكنك تغيير هذا إلى أي مما يلي:
QrCode::encoding('UTF-8')->generate('Make me a QrCode with special symbols ♠♥!!');
| تشفير الأحرف |
|---|
| ISO-8859-1 |
| ISO-8859-2 |
| ISO-8859-3 |
| ISO-8859-4 |
| ISO-8859-5 |
| ISO-8859-6 |
| ISO-8859-7 |
| ISO-8859-8 |
| ISO-8859-9 |
| ISO-8859-10 |
| ISO-8859-11 |
| ISO-8859-12 |
| ISO-8859-13 |
| ISO-8859-14 |
| ISO-8859-15 |
| ISO-8859-16 |
| SHIFT-JIS |
| WINDOWS-1250 |
| WINDOWS-1251 |
| WINDOWS-1252 |
| WINDOWS-1256 |
| UTF-16BE |
UTF-8 | | ASCII | | GBK | | EUC-KR |
(string $filepath, float $percentage = .2, bool $absolute = false)تدمج دالة merge صورة عبر QrCode. يستخدم هذا بشكل شائع لوضع الشعارات داخل QrCode.
//Generates a QrCode with an image centered in the middle.
QrCode::format('png')->merge('path-to-image.png')->generate();
//Generates a QrCode with an image centered in the middle. The inserted image takes up 30% of the QrCode.
QrCode::format('png')->merge('path-to-image.png', .3)->generate();
//Generates a QrCode with an image centered in the middle. The inserted image takes up 30% of the QrCode.
QrCode::format('png')->merge('http://www.google.com/someimage.png', .3, true)->generate();
دالة "merge" تدعم PNG فقط في الوقت الحالي. يعد مسار الملف نسبيًا لمسار التطبيق الأساسي إذا تم تعيين
$absoluteعلىfalse. غيّر هذا المتغير إلىtrueلاستخدام المسارات المطلقة.
يجب عليك استعمال نسبة الإرتفاع ل تصحيح الخطأ عندما تستعمل دالة
mergeللتأكد أن ال Qrcode باقي سهل القراءة. نوصي باستخدامerrorCorrection('H').

(string $content, float $percentage = .2)دالة mergeString يمكن إستخدامها للوصول لنفس النتيجة عندما تستدعي دالة merge, باستثناء أنه يسمح لك بتوفير تمثيل سلسلة للملف بدلاً من مسار الملف. هذا مفيد عند العمل مع واجهة Storage. واجهته مشابهة تمامًا لدالة merge
//Generates a QrCode with an image centered in the middle.
QrCode::format('png')->mergeString(Storage::get('path/to/image.png'))->generate();
//Generates a QrCode with an image centered in the middle. The inserted image takes up 30% of the QrCode.
QrCode::format('png')->mergeString(Storage::get('path/to/image.png'), .3)->generate();
جميع الدوال تدعم التسلسل. يجب إستدعاء دالة generate في الأخير. على سبيل المثال:
QrCode::size(250)->color(150,90,10)->backgroundColor(10,14,244)->generate('Make me a QrCode!');
QrCode::format('png')->size(399)->color(40,40,40)->generate('Make me a QrCode!');
تستطيع عرض صورة بإمتداد PNG بدون حفظ الملف من خلال توفير سلسلة raw string و encoding بواسطة base64_encode.
<img src="data:image/png;base64, {!! base64_encode(QrCode::format('png')->size(100)->generate('Make me into an QrCode!')) !!} ">
تعد الدوال المساعدة طريقة سهلة لإنشاء QrCodes التي تجعل القارئ يقوم بعمل معين عند مسحه ضوئيا
This helper generates a scannable bitcoin to send payments. More information
هاته الدالة المساعدة تقوم بعمل إنشاء عملة بيتكوين قابلة للمسح لإرسال مدفوعات. لمزيد من المعلومات أضغط على الرابط
QrCode::BTC($address, $amount);
//Sends a 0.334BTC payment to the address
QrCode::BTC('bitcoin address', 0.334);
//Sends a 0.334BTC payment to the address with some optional arguments
QrCode::size(500)->BTC('address', 0.0034, [
'label' => 'my label',
'message' => 'my message',
'returnAddress' => 'https://www.returnaddress.com'
]);
هاته الدالة المساعدة تمكنك من إنشاء QrCode للبريد الإلكتروني عنوان بريد إلكتروني مع الموضوع و المحتوى
QrCode::email($to, $subject, $body);
//Fills in the to address
QrCode::email('foo@bar.com');
//Fills in the to address, subject, and body of an e-mail.
QrCode::email('foo@bar.com', 'This is the subject.', 'This is the message body.');
//Fills in just the subject and body of an e-mail.
QrCode::email(null, 'This is the subject.', 'This is the message body.');
هاته الدالة المساعة تنشأ لك خطوط طول و عرض لتتم القرائة عن طريق الهاتف و فتح الموقع على خرائط Google أو تطبيق مشابه
QrCode::geo($latitude, $longitude);
QrCode::geo(37.822214, -122.481769);
هاته الدالة تمكنك من إنشاء QrCode يستطيع الهاتف مسحه و الإتصال بالرقم.
QrCode::phoneNumber($phoneNumber);
QrCode::phoneNumber('555-555-5555');
QrCode::phoneNumber('1-800-Laravel');
هاته الدالة المساعدة تمكنك من إنشاء رسالة نصية و التي يمكن تعبئتها مسبقًا بالإرسال إلى العنوان ونص الرسالة:
QrCode::SMS($phoneNumber, $message);
//Creates a text message with the number filled in.
QrCode::SMS('555-555-5555');
//Creates a text message with the number and message filled in.
QrCode::SMS('555-555-5555', 'Body of the message');
هاته الدالة المساعدة تمكنك من مسح ال QrCodes التي بدورها تعمل إتصال من الهاتف لشبكة الوايفاي:
QrCode::wiFi([
'encryption' => 'WPA/WEP',
'ssid' => 'SSID of the network',
'password' => 'Password of the network',
'hidden' => 'Whether the network is a hidden SSID or not.'
]);
//Connects to an open WiFi network.
QrCode::wiFi([
'ssid' => 'Network Name',
]);
//Connects to an open, hidden WiFi network.
QrCode::wiFi([
'ssid' => 'Network Name',
'hidden' => 'true'
]);
//Connects to a secured WiFi network.
QrCode::wiFi([
'ssid' => 'Network Name',
'encryption' => 'WPA',
'password' => 'myPassword'
]);
منتجات أبل في الوقت الحالي لا تدعم مسح الوايفاي عن طريق ال QrCode
يمكنك استخدام بادئة موجودة في الجدول أدناه داخل قسم generate لإنشاء رمز QrCode لتخزين المزيد من المعلومات المتقدمة:
QrCode::generate('http://www.simplesoftware.io');
| الإستعمال | الإختصار | مثال |
|---|---|---|
| رابط موقع إلكتروني | http:// | http://www.simplesoftware.io |
| عنوان URL آخمن | https:// | https://www.simplesoftware.io |
| بريد إلكتروني | mailto: | mailto:support@simplesoftware.io |
| رقم هاتف | tel: | tel:555-555-5555 |
| رسالة نصية (SMS) | sms: | sms:555-555-5555 |
| رسالة نصية (SMS) مع رسالة مكتوبة مسبقًا | sms: | sms::I am a pretyped message |
| رسالة نصية (SMS) مع رسالة ورقم مكتوب مسبقًا | sms: | sms:555-555-5555:I am a pretyped message |
| العنوان الجغرافي | geo: | geo:-78.400364,-85.916993 |
| MeCard | mecard: | MECARD:Simple, Software;Some Address, Somewhere, 20430;TEL:555-555-5555;EMAIL:support@simplesoftware.io; |
| VCard | BEGIN:VCARD | See Examples |
| الوايفاي | wifi: | wifi:WEP/WPA;SSID;PSK;Hidden(True/False) |
يمكنك إستخدام هاته الحزمة خارج إطار لارافل عبر إنشاء Generator كلاس Class جديد:
use SimpleSoftwareIO\QrCode\Generator;
$qrcode = new Generator;
$qrcode->size(500)->generate('Make a qrcode without Laravel!');
How can I help you explore Laravel packages today?