peal/qrcode-generator

在 Laravel 中生成 QR 码

dev-master 2024-05-01 07:14 UTC

This package is auto-updated.

Last update: 2024-10-01 00:12:42 UTC


README

QR 码(快速响应码)是一种 2D 条形码,用于通过智能手机轻松访问信息。在这个过程中,称为移动标记,手机用户将手机对准 QR 码并打开条形码读取器应用程序,该应用程序与手机摄像头协同工作。

安装

在您的项目根目录下,打开您的终端

composer require peal/qrcode-generator

Composer 将自动下载所有依赖。

对于 Laravel

完成安装后,打开配置文件夹中的 app.php,在 providers 数组中粘贴以下行

peal\qrcodegenerator\QrServiceProvider::class,

对于 Facade 支持,在 aliases 数组中粘贴以下行

'QR' => peal\qrcodegenerator\Facades\QR::class,

然后运行此命令

php artisan vendor:publish --provider="peal\qrcodegenerator\QrServiceProvider"

检查 vendor 发布后,您的配置文件夹中是否已创建 qr-config.php。

/*
 * QR api url
 * 
 */

return [
    'qrapi'  => 'https://chart.googleapis.com/chart?',
];

单张 QR 码使用

 //Using Facades
 
try {
        $qrcontent = QR::qrFactory()
                ->email("moinuddin7@gmail.com")
                ->phone("01716187302")
                ->url("https://moinshareidea.wordpress.com/")
                ->text("position:","Lead Developer at GrubDealz Inc.")
                ->QrCode(200);

        echo '<p class="center"><img src="' . $qrcontent . '" alt="QR Code" /></p>';

} catch(Exception $e) {

    return $e->getMessage();

}

//Using service container

try {
        
        $qr = App::make('QR');

        $qrcontent = $qr->qrFactory()
                ->email("moinuddin7@gmail.com")
                ->phone("01716187302")
                ->text("website:","https://moinshareidea.wordpress.com/")
                ->text("position:","Lead Developer at GrubDealz Inc.")
                ->QrCode(200);

        echo '<p class="center"><img src="' . $qrcontent . '" alt="QR Code" /></p>';
} catch(Exception $e) {

    return $e->getMessage();

}

//Using core PHP

try {
        
        //Without Laravel, can be usable any php or php framework 
        
        $qr = new \peal\qrcodegenerator\Server\QrServer();
        
        $qrcontent = $qr->qrFactory()
                ->email("moinuddin7@gmail.com")
                ->phone("01716187302")
                ->text("website:","https://moinshareidea.wordpress.com/")
                ->text("position:","Lead Developer at GrubDealz Inc.")
                ->QrCode(200);
    
        echo '<p class="center"><img src="' . $qrcontent . '" alt="QR Code" /></p>';

} catch(Exception $e) {

    return $e->getMessage();

}

使用 Facades 的多个 QR 码

    
    //in your controller contruct method
    $qr = App::make('QR');
    
    try {
            $qrcodes = [
                [
                    'email' => 'moinuddin7@gmail.com',
                    'phone' => '01716187302',
                    'url' => 'https://moinshareidea.wordpress.com/',
                    'position' => 'Lead Developer at GrubDealz Inc.',
                ],
                [
                    'email' => 'moinuddinbca7@gmail.com',
                    'phone' => '01716187332',
                    'url' => 'https://moinshareidea.wordpress.com/',
                    'position' => 'Software engineer at GrubDealz Inc.',
                ],
                [
                    'email' => 'arifinbca@gmail.com',
                    'phone' => '01716187392',
                    'url' => 'https://moinshareidea.wordpress.com/',
                    'position' => 'Business development officer at BCA Bangladesh.',
                ],
            ];

            foreach($qrcodes as $qrcode) {
                    $qrcontent = $qr->qrFactory()
                        ->email($qrcode['email'])
                        ->phone($qrcode['phone'])
                        ->url($qrcode['url'])
                        ->text('',$qrcode['position'])
                        ->QrCode(200);

                    echo '<p class="center"><img src="' . $qrcontent . '" alt="QR Code" /></p>';
            }

        } catch(Exception $e) {

            return $e->getMessage();

        }
        
        

使用核心 PHP 的多个 QR 码

use peal\qrcodegenerator\Server\QrServer;
$qr = new QrServer();
    
    try {
            $qrcodes = [
                [
                    'email' => 'moinuddin7@gmail.com',
                    'phone' => '01716187302',
                    'url' => 'https://moinshareidea.wordpress.com/',
                    'position' => 'Lead Developer at GrubDealz Inc.',
                ],
                [
                    'email' => 'moinuddinbca7@gmail.com',
                    'phone' => '01716187332',
                    'url' => 'https://moinshareidea.wordpress.com/',
                    'position' => 'Software engineer at GrubDealz Inc.',
                ],
                [
                    'email' => 'arifinbca@gmail.com',
                    'phone' => '01716187392',
                    'url' => 'https://moinshareidea.wordpress.com/',
                    'position' => 'Business development officer at BCA Bangladesh.',
                ],
            ];

            foreach($qrcodes as $qrcode) {
                    $qrcontent = $qr->qrFactory()
                        ->email($qrcode['email'])
                        ->phone($qrcode['phone'])
                        ->url($qrcode['url'])
                        ->text('',$qrcode['position'])
                        ->QrCode(200);

                    echo '<p class="center"><img src="' . $qrcontent . '" alt="QR Code" /></p>';
            }

        } catch(Exception $e) {

            return $e->getMessage();

        }

使用 Facades 的多个 QR 码

    use peal\qrcodegenerator\Facades\QR;
    
    try {
            $qrcodes = [
                [
                    'email' => 'moinuddin7@gmail.com',
                    'phone' => '01716187302',
                    'url' => 'https://moinshareidea.wordpress.com/',
                    'position' => 'Lead Developer at GrubDealz Inc.',
                ],
                [
                    'email' => 'moinuddinbca7@gmail.com',
                    'phone' => '01716187332',
                    'url' => 'https://moinshareidea.wordpress.com/',
                    'position' => 'Software engineer at GrubDealz Inc.',
                ],
                [
                    'email' => 'arifinbca@gmail.com',
                    'phone' => '01716187392',
                    'url' => 'https://moinshareidea.wordpress.com/',
                    'position' => 'Business development officer at BCA Bangladesh.',
                ],
            ];

            foreach($qrcodes as $qrcode) {
                    $qrcontent = QR::qrFactory()
                        ->email($qrcode['email'])
                        ->phone($qrcode['phone'])
                        ->url($qrcode['url'])
                        ->text('',$qrcode['position'])
                        ->QrCode(200);

                    echo '<p class="center"><img src="' . $qrcontent . '" alt="QR Code" /></p>';
            }

        } catch(Exception $e) {

            return $e->getMessage();

        }

作者

Mohammed Minuddin(Peal)