Descripción: Se ha realizado una refactorización mayor del sistema de notificaciones y generación de comprobantes para eliminar dependencias legacy (Imagick/FTP) y modernizar la arquitectura. 🚀 Nuevas Características (Features) Microservicio PDF (pdf-cropper): Nuevo servicio en Python (FastAPI + Poppler) desplegado en Docker (Puerto 8050) para la conversión de PDF a Imagen. Reemplaza la librería Imagick de PHP, aislando el procesamiento pesado fuera del plugin. Modo Full: Garantiza la conversión del PDF completo respetando su relación de aspecto original (sin recortes ni "square crop"). Overlay de Texto: Capacidad nativa en el backend para sobreescribir texto dinámicamente (ej. cambiar "Tarjeta de crédito Stripe" por "OXXO Pay") basado en parámetros. Integración S3 / MinIO: Implementación de MinioStorageService . Los comprobantes (JPG) y Vouchers OXXO se suben automáticamente a MinIO en lugar de usar FTP. Generación de URLs públicas seguras. 🧹 Mantenimiento y Limpieza (Chores/Refactor) Limpieza Automática (Cleanup): Se implementó lógica para eliminar archivos temporales locales (PDFs descargados, JPGs generados) inmediatamente después de una subida exitosa a MinIO. Aplica tanto para comprobantes de pago como para Vouchers OXXO. Refactor ClientCallBellAPI : Eliminación de código muerto relacionado con FTP de WordPress. Implementación de cliente HTTP Guzzle para comunicación con pdf-cropper. Cache Busting: Se añade Timestamp al nombre de archivo (_time()) para evitar caché agresivo en WhatsApp/Navegadores. Detección de Método: Lógica preliminar para detectar "OXXO" o "Transferencia" en notas de pago y aplicar Overlay. Docker Infraestructura: Actualización de docker-compose.yml para incluir pdf-cropper. Instalación de fuentes (fonts-dejavu-core) para renderizado correcto de texto. 🐛 Correcciones (Bug Fixes) Fix Recorte de Imagen: Se eliminó la restricción de relación de aspecto 1:1 (cuadrado) que cortaba headers y footers en documentos rectangulares. Standardización de Notas: Actualización de AbstractStripeOperationsFacade para incluir explícitamente "OXXO" o "Transferencia" en las notas de pago de UCRM (preparación para lógica de plantillas).
95 lines
4.9 KiB
Markdown
95 lines
4.9 KiB
Markdown

|
|
|
|
# Guzzle, PHP HTTP client
|
|
|
|
[](https://github.com/guzzle/guzzle/releases)
|
|
[](https://github.com/guzzle/guzzle/actions?query=workflow%3ACI)
|
|
[](https://packagist.org/packages/guzzlehttp/guzzle)
|
|
|
|
Guzzle is a PHP HTTP client that makes it easy to send HTTP requests and
|
|
trivial to integrate with web services.
|
|
|
|
- Simple interface for building query strings, POST requests, streaming large
|
|
uploads, streaming large downloads, using HTTP cookies, uploading JSON data,
|
|
etc...
|
|
- Can send both synchronous and asynchronous requests using the same interface.
|
|
- Uses PSR-7 interfaces for requests, responses, and streams. This allows you
|
|
to utilize other PSR-7 compatible libraries with Guzzle.
|
|
- Supports PSR-18 allowing interoperability between other PSR-18 HTTP Clients.
|
|
- Abstracts away the underlying HTTP transport, allowing you to write
|
|
environment and transport agnostic code; i.e., no hard dependency on cURL,
|
|
PHP streams, sockets, or non-blocking event loops.
|
|
- Middleware system allows you to augment and compose client behavior.
|
|
|
|
```php
|
|
$client = new \GuzzleHttp\Client();
|
|
$response = $client->request('GET', 'https://api.github.com/repos/guzzle/guzzle');
|
|
|
|
echo $response->getStatusCode(); // 200
|
|
echo $response->getHeaderLine('content-type'); // 'application/json; charset=utf8'
|
|
echo $response->getBody(); // '{"id": 1420053, "name": "guzzle", ...}'
|
|
|
|
// Send an asynchronous request.
|
|
$request = new \GuzzleHttp\Psr7\Request('GET', 'http://httpbin.org');
|
|
$promise = $client->sendAsync($request)->then(function ($response) {
|
|
echo 'I completed! ' . $response->getBody();
|
|
});
|
|
|
|
$promise->wait();
|
|
```
|
|
|
|
## Help and docs
|
|
|
|
We use GitHub issues only to discuss bugs and new features. For support please refer to:
|
|
|
|
- [Documentation](https://docs.guzzlephp.org)
|
|
- [Stack Overflow](https://stackoverflow.com/questions/tagged/guzzle)
|
|
- [#guzzle](https://app.slack.com/client/T0D2S9JCT/CE6UAAKL4) channel on [PHP-HTTP Slack](https://slack.httplug.io/)
|
|
- [Gitter](https://gitter.im/guzzle/guzzle)
|
|
|
|
|
|
## Installing Guzzle
|
|
|
|
The recommended way to install Guzzle is through
|
|
[Composer](https://getcomposer.org/).
|
|
|
|
```bash
|
|
composer require guzzlehttp/guzzle
|
|
```
|
|
|
|
|
|
## Version Guidance
|
|
|
|
| Version | Status | Packagist | Namespace | Repo | Docs | PSR-7 | PHP Version |
|
|
|---------|---------------------|---------------------|--------------|---------------------|---------------------|-------|--------------|
|
|
| 3.x | EOL (2016-10-31) | `guzzle/guzzle` | `Guzzle` | [v3][guzzle-3-repo] | [v3][guzzle-3-docs] | No | >=5.3.3,<7.0 |
|
|
| 4.x | EOL (2016-10-31) | `guzzlehttp/guzzle` | `GuzzleHttp` | [v4][guzzle-4-repo] | N/A | No | >=5.4,<7.0 |
|
|
| 5.x | EOL (2019-10-31) | `guzzlehttp/guzzle` | `GuzzleHttp` | [v5][guzzle-5-repo] | [v5][guzzle-5-docs] | No | >=5.4,<7.4 |
|
|
| 6.x | EOL (2023-10-31) | `guzzlehttp/guzzle` | `GuzzleHttp` | [v6][guzzle-6-repo] | [v6][guzzle-6-docs] | Yes | >=5.5,<8.0 |
|
|
| 7.x | Latest | `guzzlehttp/guzzle` | `GuzzleHttp` | [v7][guzzle-7-repo] | [v7][guzzle-7-docs] | Yes | >=7.2.5,<8.5 |
|
|
|
|
[guzzle-3-repo]: https://github.com/guzzle/guzzle3
|
|
[guzzle-4-repo]: https://github.com/guzzle/guzzle/tree/4.x
|
|
[guzzle-5-repo]: https://github.com/guzzle/guzzle/tree/5.3
|
|
[guzzle-6-repo]: https://github.com/guzzle/guzzle/tree/6.5
|
|
[guzzle-7-repo]: https://github.com/guzzle/guzzle
|
|
[guzzle-3-docs]: https://guzzle3.readthedocs.io/
|
|
[guzzle-5-docs]: https://docs.guzzlephp.org/en/5.3/
|
|
[guzzle-6-docs]: https://docs.guzzlephp.org/en/6.5/
|
|
[guzzle-7-docs]: https://docs.guzzlephp.org/en/latest/
|
|
|
|
|
|
## Security
|
|
|
|
If you discover a security vulnerability within this package, please send an email to security@tidelift.com. All security vulnerabilities will be promptly addressed. Please do not disclose security-related issues publicly until a fix has been announced. Please see [Security Policy](https://github.com/guzzle/guzzle/security/policy) for more information.
|
|
|
|
## License
|
|
|
|
Guzzle is made available under the MIT License (MIT). Please see [License File](LICENSE) for more information.
|
|
|
|
## For Enterprise
|
|
|
|
Available as part of the Tidelift Subscription
|
|
|
|
The maintainers of Guzzle and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source dependencies you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact dependencies you use. [Learn more.](https://tidelift.com/subscription/pkg/packagist-guzzlehttp-guzzle?utm_source=packagist-guzzlehttp-guzzle&utm_medium=referral&utm_campaign=enterprise&utm_term=repo)
|