Skip to content

Releases: DevWizardHQ/laravel-textify

v1.4.0

27 Oct 09:00
81d203e

Choose a tag to compare

What's Changed

  • fix: update ReveSMS provider URIs to use HTTP instead of HTTPS by @iqbalhasandev in #8

Full Changelog: v1.3.1...v1.4.0

v1.3.1

26 Oct 14:57
48f9ed8

Choose a tag to compare

What's Changed

  • build(deps): Bump stefanzweifel/git-auto-commit-action from 6 to 7 by @dependabot[bot] in #7

Full Changelog: v1.3.0...v1.3.1

v1.3.0

09 Sep 10:44
7cebeaf

Choose a tag to compare

What's Added

  • Message Validation System: Comprehensive message validation with configurable rules
    • Laravel-style validation configuration (required, min, max)
    • Support for nullable messages via TEXTIFY_MESSAGE_REQUIRED=false
    • Configurable minimum and maximum message length
    • Proper validation error messages

What's Enhanced

  • Error Handling: Improved error mapping and messages for all Bangladeshi SMS providers
    • ReveSmsProvider: Enhanced error code mapping including error 114 handling
    • AlphaSmsProvider: Better error message descriptions
    • EsmsProvider: Improved error handling and status mapping
    • DhorolaSmsProvider: Enhanced error code explanations
    • MimSmsProvider: Better API response parsing
    • BulkSmsBdProvider: Comprehensive error code mapping

What's Fixed

  • ReveSMS Error 114: "Content not provided" error now prevented by pre-send validation
  • Empty Message Handling: Consistent behavior across all providers
  • Whitespace Messages: Properly validates and rejects whitespace-only messages

What's Technical

  • Added validateMessageContent() method to BaseProvider
  • Enhanced BaseProvider with proper phone number validation methods
  • Comprehensive test suite with 6 test cases
  • PHPStan validation passed
  • Backward compatible configuration

Full Changelog: v1.2.0...v1.3.0

v1.2.0

07 Sep 05:02
178887a

Choose a tag to compare

What's Changed

🚀 New Features

  • feat: add connect_timeout configuration option
    • Added connect_timeout option to all SMS provider configurations
    • Updated BaseProvider to use connect_timeout in HTTP client config
    • Added comprehensive test coverage for connect_timeout functionality
    • Updated provider configuration documentation
    • Default connect_timeout is 10 seconds, configurable per provider

⚡ Enhanced Provider Configuration

  • Timeout Configuration: Providers now support two distinct timeout settings:
    • timeout: Maximum time (in seconds) to wait for a response from the API (default: 30s)
    • connect_timeout: Maximum time (in seconds) to wait for connection establishment (default: 10s)

📋 Updated Providers

All SMS providers now support the new connect_timeout configuration:

  • Dhorola SMS: DHOROLA_CONNECT_TIMEOUT (default: 10s)
  • BulkSMSBD: BULKSMSBD_CONNECT_TIMEOUT (default: 10s)
  • MimSMS: MIMSMS_CONNECT_TIMEOUT (default: 10s)
  • eSMS: ESMS_CONNECT_TIMEOUT (default: 10s)
  • REVE SMS: REVESMS_CONNECT_TIMEOUT (default: 10s)
  • Alpha SMS: ALPHASMS_CONNECT_TIMEOUT (default: 10s)
  • Nexmo: NEXMO_CONNECT_TIMEOUT (default: 10s)

🧪 Testing

  • Added ConnectTimeoutTest with comprehensive test coverage
  • Tests verify proper default values and configuration handling
  • All existing tests continue to pass

Breaking Changes

None. This is a backward-compatible feature addition.

Migration Guide

To use the new connect_timeout feature, add the appropriate environment variable to your .env file:

# Example for Dhorola SMS provider
DHOROLA_CONNECT_TIMEOUT=15

# Or for any other provider
BULKSMSBD_CONNECT_TIMEOUT=8
MIMSMS_CONNECT_TIMEOUT=12

Full Changelog: v1.1.2...v1.2.0

v1.1.2

26 Aug 15:58

Choose a tag to compare

What's Changed

  • build(deps): Bump actions/checkout from 4 to 5 by @dependabot[bot] in #2
  • fix: set SSL verification to false by default to prevent connection timeouts (#3) by @iqbalhasandev in #4

New Contributors

Full Changelog: v1.1.1...v1.1.2

v1.1.1

04 Aug 09:58

Choose a tag to compare

What we change:

  • Refactor TextifyMessage class to use 'self' instead of 'static' for return types and update phpstan baseline configuration

Full Changelog: v1.1.0...v1.1.1

v1.1.0

04 Aug 09:46

Choose a tag to compare

feat: add Laravel notification channel with comprehensive SMS integration

🔔 MAJOR FEATURE: Laravel Notifications Integration

This commit introduces complete Laravel notification system integration, allowing developers to send SMS notifications using the 'textify' channel alongside mail, database, and other Laravel notification channels.

New Features Added:

1. TextifyChannel (src/Channels/TextifyChannel.php)

  • Full Laravel notification channel implementation
  • Smart phone number resolution with 3-tier priority system:
    1. routeNotificationForTextify() method (notification context aware)
    2. getTextifyPhoneNumber() method (custom business logic)
    3. Automatic attribute detection (phone_number, phone, mobile, phn, cell, mobile_number)
  • Support for multiple message formats (TextifyMessage object, string, array)
  • Provider/driver selection per notification
  • Custom sender ID support
  • Comprehensive error handling and validation

2. TextifyMessage DTO (src/Notifications/TextifyMessage.php)

  • Immutable data structure for SMS notifications
  • Fluent API for easy message construction
  • Support for message, sender ID, driver/provider, and metadata
  • Factory method pattern with TextifyMessage::create()
  • Seamless integration with notification channel

3. Service Provider Integration (src/TextifyServiceProvider.php)

  • Automatic notification channel registration
  • Integration with Laravel's ChannelManager
  • No additional configuration required - works out of the box

4. Comprehensive Test Suite (tests/NotificationChannelTest.php)

  • 9 test cases covering all notification scenarios
  • Phone number resolution priority testing
  • Multiple message format validation
  • Error handling verification
  • Direct channel usage testing
  • Edge case coverage

5. Usage Examples (examples/NotificationExamples.php)

  • 5 real-world notification examples
  • Order notifications, OTP, marketing, emergency alerts
  • User model integration examples
  • Advanced notification patterns
  • Best practices and conventions

6. Enhanced Documentation (README.md)

  • Complete Laravel Notifications section with table of contents
  • Step-by-step setup guide
  • Phone number resolution methods documentation
  • Message format examples
  • Event integration patterns
  • Advanced usage scenarios
  • Configuration examples

Full Changelog: v1.0.1...v1.1.0

V1.0.1

03 Aug 17:46

Choose a tag to compare

🐛 Bug Fixes

  • Fixed Critical Queue Bug: Fixed queue() method incorrectly handling multiple contacts by only processing the first contact ([0])
  • Improved Queue Functionality: Now properly handles arrays of contacts, creating separate jobs for each recipient
  • Fixed CI Compatibility: Removed describe() blocks from tests for better CI environment compatibility

✨ New Features

  • Added TextifyJobFailed Event: New event dispatched when queued SMS jobs fail, providing better error tracking
  • Enhanced Queue Error Handling: Improved error logging and event dispatching for failed queue jobs

🔧 Configuration Cleanup

  • Removed Unused Config: Cleaned up configuration file by removing unused sections (queue, validation, rate_limiting)
  • Updated Activity Tracking Default: Changed TEXTIFY_ACTIVITY_TRACKING_ENABLED default to false for opt-in behavior
  • Streamlined Config: Configuration now only includes implemented features for better clarity

📚 Documentation Updates

  • Updated README: Fixed activity tracking default value documentation
  • Enhanced Event Documentation: Added documentation for new TextifyJobFailed event

Full Changelog: v1.0.0...v1.0.1

v1.0.0

03 Aug 17:04
47b7773

Choose a tag to compare

Initial Release 🎉

First stable release of Laravel Textify - Enterprise SMS Package for Laravel

✨ Key Features:
• 8+ SMS Providers Support with unified API
• Automatic Fallback System for maximum reliability
• Queue Integration for background processing
• Comprehensive Activity Tracking & Logging
• Event-Driven Architecture with lifecycle events
• Fluent API Interface for developer experience
• Phone Number Validation & Formatting
• Laravel 10+ & PHP 8.3+ Support

📱 Supported Providers:
🇧🇩 Bangladeshi: DhorolaSMS, BulkSMSBD, MimSMS, eSMS, REVE SMS, Alpha SMS
🌍 International: Twilio, Nexmo/Vonage (with optional SDK)
🛠️ Development: Log & Array providers for testing

🏗️ Enterprise Architecture:
• Interface-driven design with comprehensive contracts
• BaseProvider abstraction for easy extension
• Factory patterns for component creation
• Laravel service provider with auto-discovery
• Comprehensive test coverage (39 tests, 211 assertions)

📚 Production Ready:
• Complete documentation with examples
• Configuration guides for all providers
• Enterprise-grade error handling
• Optimized for performance and scalability

Perfect for businesses needing reliable SMS functionality with multiple provider support."

Full Changelog: https://github.com/DevWizardHQ/laravel-textify/commits/v1.0.0