Gerador de QR Codes em PHP: visão geral das melhores bibliotecas
Os QR Codes se tornaram parte essencial da web moderna. Eles são usados para acesso rápido a links, transmissão de dados de contato, autenticação em serviços e até mesmo para pagamentos. Se você está desenvolvendo em PHP e deseja implementar a geração de QR Codes no seu site, não precisa reinventar a roda — existem bibliotecas testadas que resolvem essa tarefa em poucas linhas de código.
Neste artigo, vamos analisar três soluções populares: a clássica phpqrcode, a moderna endroid/qr-code e a leve chillerlan/php-qrcode. Você aprenderá como instalar cada uma delas, gerar um QR Code e exibi-lo na tela ou salvá-lo em um arquivo.
1. Biblioteca phpqrcode (versão clássica)
Esta é uma das primeiras bibliotecas para geração de QR Codes em PHP. Ela não requer dependências externas, funciona "pronta para uso" e ainda é utilizada em muitos projetos legados. A principal desvantagem é a falta de suporte aos padrões modernos PSR e Composer (embora possa ser instalada manualmente).
Instalação
Baixe o arquivo do SourceForge e descompacte na pasta do seu projeto. Inclua o arquivo qrlib.php:
require_once 'phpqrcode/qrlib.php';Exemplo de geração e saída PNG
<?phprequire_once 'phpqrcode/qrlib.php';
// Dados para codificar$text = 'https://pythonlib.ru';
// Caminho para salvar o arquivo$filename = 'qrcode.png';
// Geração do QR Code com nível de correção L (7%) e tamanho 10QRcode::png($text, $filename, QR_ECLEVEL_L, 10, 2);
// Exibição da imagem no navegadorheader('Content-Type: image/png');QRcode::png($text, false, QR_ECLEVEL_L, 10, 2);?>O segundo parâmetro false significa que a imagem é exibida diretamente no navegador, em vez de ser salva em um arquivo.
2. Biblioteca endroid/qr-code (moderna e flexível)
Esta é a solução mais popular no Packagist. A biblioteca suporta PSR-4, integra-se facilmente com qualquer framework (Laravel, Symfony) e permite personalizar cores, tamanho, margens e até adicionar logotipo.
Instalação via Composer
composer require endroid/qr-codeExemplo básico de geração
<?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);
// Exibição no navegadorheader('Content-Type: '.$result->getMimeType());echo $result->getString();?>QR Code com logotipo
<?phpuse Endroid\\QrCode\\Logo\\Logo;use Endroid\\QrCode\\Color\\Color;
$logo = Logo::create('caminho/para/logo.png') ->setResizeToWidth(60);
$qrCode = QrCode::create('https://pythonlib.ru') ->setSize(400) ->setForegroundColor(new Color(0, 123, 255)); // cor azul
$writer = new PngWriter();$result = $writer->write($qrCode, $logo);
header('Content-Type: image/png');echo $result->getString();?>3. Biblioteca chillerlan/php-qrcode (leve e rápida)
Excelente escolha se você precisa de dependência mínima e alta performance. A biblioteca suporta todos os modos de codificação padrão, máscaras e níveis de correção de erros. Ideal para projetos de alta carga.
Instalação
composer require chillerlan/php-qrcodeExemplo de geração
<?phprequire 'vendor/autoload.php';
use chillerlan\\QRCode\\QRCode;use chillerlan\\QRCode\\QROptions;
$options = new QROptions([ 'outputType' => QRCode::OUTPUT_IMAGE_PNG, 'eccLevel' => QRCode::ECC_L, Também na biblioteca
Trabalhando com YAML em Swift (iOS/macOS) — Bibliotecas Yams e YamlSwift
Aprendizado de Máquina em Swift: bibliotecas para iOS/macOS
Programação Reativa em C++: Bibliotecas e Prática
Trabalhando com XML em TypeScript: bibliotecas para parsing e criação de XML