Download the PHP package richard-roman/short-links-qr without Composer
On this page you can find all versions of the php package richard-roman/short-links-qr. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download richard-roman/short-links-qr
More information about richard-roman/short-links-qr
Files in richard-roman/short-links-qr
Package short-links-qr
Short Description Short links and QR codes for Laravel applications
License MIT
Homepage https://github.com/Richard-Roman/short-links-qr
Informations about the package short-links-qr
richard-roman/short-links-qr
Paquete Composer de short links + códigos QR para aplicaciones Laravel.
Versión: 1.2.0
Requisitos: PHP ^8.3, Laravel ^11|^12|^13
Repositorio: github.com/Richard-Roman/short-links-qr
Packagist: packagist.org/packages/richard-roman/short-links-qr
Instalación
Packagist (recomendado)
VCS (sin Packagist)
El paquete se auto-descubre vía ShortLinksServiceProvider. Ejecutar migraciones:
Configuración (opcional)
Claves principales en config/short-links.php:
| Clave | Default | Descripción |
|---|---|---|
route_prefix |
l |
Prefijo de rutas públicas |
qr_generator |
RichardRoman\ShortLinks\Laravel\Qr\EndroidQrGenerator::class |
Clase del generador de QR a resolver desde el contenedor |
throttle |
120,1 |
Rate limit redirect/QR |
cache.ttl |
3600 |
TTL cache de URL resuelta (seg) |
cache.prefix |
short_link_redirect: |
Prefijo clave cache |
generator.length |
8 |
Longitud de códigos auto-generados |
generator.charset |
charset sin ambiguos | Caracteres del generador aleatorio |
route_pattern |
[a-hjkmnp-z2-9]{8} |
Regex Laravel where() + validación de códigos |
Variables de entorno opcionales: SHORT_LINKS_LENGTH, SHORT_LINKS_CHARSET, SHORT_LINKS_ROUTE_PATTERN.
v1.1.0 — Códigos configurables y manuales
Actualización semver minor compatible con v1.0: sin overrides en .env, el comportamiento es idéntico a 1.0.0.
Código manual opcional
Si el código no cumple route_pattern, se lanza InvalidCodeFormatException. Si ya existe, DuplicateCodeException sin reintentos aleatorios.
Personalizar generador y patrón de ruta
El generador y las rutas públicas MUST usar el mismo route_pattern.
Actualizar desde v1.1
No requiere migraciones nuevas. Ver CHANGELOG.md para el detalle completo.
v1.2.0 — Gestión del ciclo de vida de enlaces
Actualización semver minor compatible con v1.1: sin cambios en .env ni migraciones.
Redirección asíncrona
El registro de clicks ya no bloquea el response HTTP. Se despacha en background vía ProcessShortLinkClickJob. Requerís un driver de cola configurado:
Desactivar un enlace
Rotación atómica de enlace
Desactiva el viejo y crea el nuevo en una única transacción de base de datos. Si la creación del nuevo falla, el viejo permanece activo (rollback automático).
Si el código viejo no existe o está inactivo, lanza ShortLinkNotFoundException.
Uso básico
Crear short links (Facade)
Rutas públicas (auto-registradas)
GET /l/{codigo}→ redirect 302 seguro + analyticsGET /l/{codigo}/qr→ PNG 300×300 del short URL
Nombres de ruta: short-links.redirect, short-links.qr.
Importante: registrar el ServiceProvider antes de rutas catch-all del host (p. ej. /blog).
Entity resolvers (host)
El paquete no conoce modelos de la app. Registrar resolvers en AppServiceProvider::boot():
Cada resolver implementa RichardRoman\ShortLinks\Contracts\EntityResolverInterface:
Cache de redirect
Tras resolver la URL (resolver host o url_destino), se cachea por codigo. La cache se invalida al desactivar un link.
QR
Requiere endroid/qr-code en el proyecto consumidor. Sin la dependencia, GET /l/{codigo}/qr responde 503.
Ejemplo multi-app
App A (app-web): resolvers producto, factura, entregable.
App B (blog): resolver articulo opcional; links externos solo con url_destino.
Misma instalación Composer; distintos resolvers taggeados por host.
Desarrollo local
Path repository (monorepo dev)
Estructura
Licencia
MIT — ver LICENSE.