Skip to content

Commit 910ebe8

Browse files
committed
Integración de la nueva versión de la API de SMSUp
🚀 Compatibilidad Extendida ✅ Laravel 5.5 a 12.x - Compatibilidad completa con todas las versiones ✅ PHP 7.4 a 8.3 - Soporte para las últimas versiones de PHP ✅ Guzzle 6.2+ y 7.x - Compatibilidad con ambas versiones principales 🎯 Nuevas Características de la API ✅ Codificación UCS2/Unicode - Soporte completo para emojis y caracteres especiales ✅ Programación de envíos - Métodos para programar SMS (sendInMinutes(), sendInHours()) ✅ Validación avanzada - Validación automática de números, mensajes y configuración ✅ Método sendMessage() - Nuevo método para envío individual más simple ✅ Factory method create() - Creación rápida de mensajes 🔧 Configuración Mejorada ✅ Archivo config/smsup.php - Configuración completa y publicable ✅ Variables de entorno - Configuración completa vía .env ✅ Logging configurable - Sistema de logs personalizable ✅ Timeouts HTTP - Configuración de timeouts para peticiones 🛡️ Manejo de Errores Mejorado ✅ Excepciones específicas - Nueva clase ValidationException ✅ Mensajes en español - Todos los errores traducidos ✅ Validación exhaustiva - Validación antes del envío ✅ Manejo de errores HTTP - Mejor gestión de errores de red 📊 Respuestas Mejoradas ✅ Métodos de utilidad - isSuccessful(), getMessageCount(), etc. ✅ Estadísticas detalladas - Contadores de mensajes exitosos/fallidos ✅ Serialización - Métodos toArray(), toJson(), __toString() ✅ Estados de mensaje - Verificación de estados (pending, rejected, etc.) 📚 Documentación Completa ✅ README.md actualizado - Documentación completa en español ✅ USAGE.md nuevo - Guía detallada con ejemplos prácticos ✅ CHANGELOG.md - Documentación de todos los cambios ✅ Comentarios en código - Documentación completa en español 🔄 Compatibilidad hacia atrás ✅ API existente - Los métodos existentes siguen funcionando ✅ Migración suave - Guía de migración incluida ✅ Configuración flexible - Soporte para configuración antigua y nueva
1 parent ae2ceba commit 910ebe8

15 files changed

+2268
-317
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,4 @@ build
33
composer.phar
44
composer.lock
55
.idea
6+
.idea/php.xml

.idea/php.xml

Lines changed: 48 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

CHANGELOG.md

Lines changed: 166 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,166 @@
1+
# Changelog
2+
3+
Todos los cambios notables de este proyecto serán documentados en este archivo.
4+
5+
## [2.0.0] - 2024-12-19
6+
7+
### 🚀 Nuevas Características
8+
9+
#### Compatibilidad Extendida
10+
-**Soporte para Laravel 12.x** - Compatibilidad completa con Laravel 5.5 a 12.x
11+
-**PHP 8.3** - Soporte para PHP 7.4 a 8.3
12+
-**Guzzle 7.x** - Compatibilidad con Guzzle 6.2+ y 7.x
13+
14+
#### API y Funcionalidades
15+
-**Codificación UCS2/Unicode** - Soporte completo para emojis y caracteres especiales
16+
-**Programación de envíos** - Métodos para programar SMS en el futuro
17+
-**Validación avanzada** - Validación automática de números, mensajes y configuración
18+
-**Método sendMessage()** - Nuevo método para envío de mensajes individuales
19+
-**Método create()** - Factory method para creación rápida de mensajes
20+
21+
#### Configuración y Gestión
22+
-**Archivo de configuración** - Nuevo archivo `config/smsup.php` con opciones avanzadas
23+
-**Variables de entorno** - Configuración completa vía `.env`
24+
-**Logging configurable** - Sistema de logs personalizable
25+
-**Timeouts HTTP** - Configuración de timeouts para peticiones
26+
-**Modo de prueba mejorado** - Mejor manejo del modo test
27+
28+
#### Manejo de Errores
29+
-**Excepciones específicas** - Nueva clase `ValidationException`
30+
-**Mensajes en español** - Todos los errores traducidos
31+
-**Validación de entrada** - Validación exhaustiva antes del envío
32+
-**Manejo de errores HTTP** - Mejor gestión de errores de red
33+
34+
#### Respuestas y Tracking
35+
-**Métodos de utilidad** - `isSuccessful()`, `getMessageCount()`, etc.
36+
-**Información detallada** - Métodos para obtener estadísticas de envío
37+
-**Serialización** - Métodos `toArray()`, `toJson()`, `__toString()`
38+
-**Estados de mensaje** - Verificación de estados (pending, rejected, etc.)
39+
40+
### 🔧 Mejoras
41+
42+
#### SmsUpMessage
43+
-**Métodos de programación** - `sendInMinutes()`, `sendInHours()`, `sendNow()`
44+
-**Métodos de codificación** - `gsm7()`, `unicode()`, `encoding()`
45+
-**Cálculo de SMS** - `getSmsCount()` para estimar número de SMS
46+
-**Validación integrada** - `validate()` para verificar completitud
47+
-**Factory method** - `create()` para creación rápida
48+
49+
#### SmsUpManager
50+
-**Arquitectura mejorada** - Separación de responsabilidades
51+
-**Validación previa** - Validación antes de envío
52+
-**Logging integrado** - Logs automáticos de éxito y error
53+
-**Manejo de reintentos** - Configuración de reintentos automáticos
54+
-**Soporte para enlaces** - Detección automática de mensajes con links
55+
56+
#### SmsUpResponse y SmsUpResponseMessage
57+
-**Métodos de estado** - `isSuccessful()`, `hasError()`, `isPending()`
58+
-**Estadísticas** - Contadores de mensajes exitosos/fallidos
59+
-**Información detallada** - `getSummary()`, `getStatusInfo()`
60+
-**Serialización** - Conversión a array/JSON
61+
62+
#### SmsUpChannel (Notifications)
63+
-**Inyección de dependencias** - Mejor integración con el container
64+
-**Detección automática** - Múltiples formas de obtener números de teléfono
65+
-**Manejo de errores** - Excepciones específicas para notificaciones
66+
-**Configuración automática** - Aplicación de valores por defecto
67+
68+
#### SmsUpServiceProvider
69+
-**Configuración publicable** - `vendor:publish` para configuración
70+
-**Compatibilidad versiones** - Soporte para diferentes versiones de Laravel
71+
-**Registro mejorado** - Mejor registro de servicios y aliases
72+
-**Validación de configuración** - Verificación de configuración al inicio
73+
74+
### 📚 Documentación
75+
76+
-**README.md actualizado** - Documentación completa en español
77+
-**USAGE.md nuevo** - Guía detallada de uso con ejemplos
78+
-**Comentarios en código** - Documentación completa en español
79+
-**Ejemplos prácticos** - Casos de uso reales y avanzados
80+
81+
### 🔄 Cambios de Compatibilidad
82+
83+
#### Configuración
84+
- ⚠️ **Nueva configuración** - Migración de `config/services.php` a `config/smsup.php`
85+
- ⚠️ **Variables de entorno** - Nuevas variables `SMSUP_*` en lugar de `SMSUP_KEY`
86+
- ⚠️ **Canal de notificaciones** - Cambio de `smsUp` a `smsup` (minúsculas)
87+
88+
#### API
89+
-**Retrocompatibilidad** - Los métodos existentes siguen funcionando
90+
-**Nuevos métodos** - Métodos adicionales sin romper la API existente
91+
-**Mejores respuestas** - Objetos de respuesta más informativos
92+
93+
### 🐛 Correcciones
94+
95+
-**Manejo de JSON** - Mejor manejo de respuestas JSON malformadas
96+
-**Validación de teléfonos** - Validación más robusta de números
97+
-**Codificación de caracteres** - Mejor soporte para caracteres especiales
98+
-**Timeouts** - Configuración de timeouts para evitar colgados
99+
-**Memory leaks** - Optimizaciones de memoria
100+
101+
### 📦 Dependencias
102+
103+
#### Actualizadas
104+
- `illuminate/*` - Soporte para Laravel 12.x
105+
- `guzzlehttp/guzzle` - Soporte para Guzzle 7.x
106+
- `nesbot/carbon` - Soporte para Carbon 3.x
107+
108+
#### Nuevas (dev)
109+
- `phpunit/phpunit` - Para testing
110+
- `orchestra/testbench` - Para testing con Laravel
111+
- `mockery/mockery` - Para mocking en tests
112+
113+
### 🔧 Configuración de Migración
114+
115+
Para migrar desde la versión 1.x:
116+
117+
1. **Publicar nueva configuración:**
118+
```bash
119+
php artisan vendor:publish --tag=smsup-config
120+
```
121+
122+
2. **Actualizar variables de entorno:**
123+
```env
124+
# Antes
125+
SMSUP_KEY=tu_clave
126+
127+
# Ahora
128+
SMSUP_API_KEY=tu_clave
129+
SMSUP_DEFAULT_FROM=TuEmpresa
130+
SMSUP_TEST_MODE=false
131+
```
132+
133+
3. **Actualizar notificaciones:**
134+
```php
135+
// Antes
136+
public function via($notifiable) {
137+
return ['smsUp'];
138+
}
139+
140+
// Ahora (recomendado)
141+
public function via($notifiable) {
142+
return ['smsup'];
143+
}
144+
```
145+
146+
### 🎯 Próximas Características (Roadmap)
147+
148+
- 📱 **Soporte para MMS** - Envío de mensajes multimedia
149+
- 📊 **Dashboard de estadísticas** - Panel de control para métricas
150+
- 🔄 **Queue jobs** - Integración con colas de Laravel
151+
- 📧 **Plantillas** - Sistema de plantillas para mensajes
152+
- 🌍 **Internacionalización** - Soporte para múltiples idiomas
153+
- 🧪 **Testing helpers** - Helpers para testing de SMS
154+
155+
---
156+
157+
## [1.x] - Versiones Anteriores
158+
159+
Las versiones 1.x proporcionaban funcionalidad básica de envío de SMS con soporte limitado para versiones de Laravel.
160+
161+
### Características de 1.x
162+
- Envío básico de SMS
163+
- Integración con Laravel Notifications
164+
- Soporte para Laravel 5.5-11.x
165+
- Configuración en `config/services.php`
166+
- Funcionalidad básica de webhooks

0 commit comments

Comments
 (0)