- Is arcturial/clickatell compatible with Laravel 10 and PHP 8.x?
- No, this library was last updated in 2016 and targets PHP 5.6+. For Laravel 10/PHP 8.x, you’ll need to manually replace deprecated functions (like `curl` or `file_get_contents`) with Laravel’s `Http` facade or Guzzle. Test thoroughly, as Clickatell’s API may have evolved since then.
- How do I send an SMS using this package in Laravel?
- The library uses a basic REST client. Initialize it with your API token, then call `sendMessage()` with a recipient array and message content. Example: `$clickatell->sendMessage(['to' => ['+1234567890'], 'content' => 'Hello'])`—but wrap this in a Laravel service provider or facade for cleaner integration.
- Does this package support Laravel’s queue system for async SMS sending?
- No, the library is synchronous. To use Laravel queues, create a `SendSmsJob` that instantiates the Clickatell client and dispatches it with `SendSmsJob::dispatch($recipient, $message)->delay(now()->addMinute())`. This avoids blocking HTTP requests.
- What happens if Clickatell’s API changes or breaks?
- Since the library is outdated, you’ll need to manually audit Clickatell’s current API docs and update endpoints/auth methods. Consider forking the repo or building a wrapper around Laravel’s `Http` client for better maintainability and error handling.
- Are there Laravel-specific features like events or logging?
- No, this is a generic PHP library. To add Laravel features, dispatch custom events (e.g., `SmsSent`, `SmsFailed`) after sending messages, and integrate Monolog for logging by injecting the logger into your wrapper class.
- How do I handle webhook callbacks (inbound/outbound SMS) in Laravel?
- Use the library’s static callback methods (`Rest::parseStatusCallback()` and `Rest::parseReplyCallback()`) to process webhook payloads. For Laravel, route these to a controller or middleware, then validate and log the data. Ensure your server’s public URL is whitelisted in Clickatell’s portal.
- What are the alternatives to arcturial/clickatell for Laravel?
- Consider Clickatell’s official PHP SDK (if available) or modern Laravel packages like `spatie/laravel-sms`, which support multiple providers and integrate natively with Laravel’s queue system, events, and HTTP client. These are actively maintained and PHP 8.x compatible.
- How do I configure API keys and endpoints in Laravel?
- Store credentials in `config/clickatell.php` (e.g., `api_key`, `endpoint`). Bind the library to Laravel’s service container in a `ClickatellServiceProvider` using `$this->app->singleton(ClickatellManager::class, fn($app) => new ClickatellManager(config('clickatell.api_key')))`.
- Does this package support batch sending or high-volume SMS?
- The library lacks built-in batching or queueing. For high-volume SMS, implement batching logic in your wrapper (e.g., loop through recipients and delay each request) or use Laravel’s queue system with `SendSmsJob` to avoid timeouts or connection issues.
- How can I test this package in Laravel without hitting Clickatell’s API?
- Mock Clickatell’s API using Laravel’s `Http::fake()`. In your tests, stub responses for `sendMessage` and callback endpoints. Example: `Http::fake([ 'clickatell.com/api/send' => Http::response(['messages' => [...]]) ])`. Test edge cases like invalid numbers or rate limits.