- Can I use sunra/turbosms-bundle in a Laravel application?
- No. sunra/turbosms-bundle is a Symfony2 bundle built around Symfony's kernel, dependency injection extension, and service container conventions, none of which exist in Laravel. There is no bundle registry in Laravel, so you would have to rewrite its service definitions as a ServiceProvider with bindings and a publishable config file. The practical recommendation is to skip installation entirely and reimplement the thin TurboSMS adapter natively in Laravel.
- Does sunra/turbosms-bundle support Laravel 10 or Laravel 11?
- No. The package was last released in August 2016 and targets Symfony 2.x-era components, while Laravel 9, 10, and 11 depend on Symfony 6 and 7 components. Its symfony/framework-bundle constraint will either be unsatisfiable or trigger a dependency downgrade cascade in a modern Laravel project. This is a hard Composer blocker, not a minor inconvenience.
- How do I install sunra/turbosms-bundle?
- You can install it with Composer only in a legacy Symfony2 application, where it must also be registered in the Symfony kernel and configured through the bundle's DependencyInjection extension. For Laravel, there is no supported installation path because Laravel does not load Symfony bundles or their services.xml definitions. Installing it alongside Laravel would not give you a usable SMS service without a full rewrite.
- What PHP versions does sunra/turbosms-bundle support?
- The bundle reflects PHP 5.6 and 7.0-era idioms, including no return types, no nullable syntax, and possibly functions removed in later PHP releases. There has been no PHP 8.x compatibility work, no PSR-4 modernization guarantee, and no security patching since 2016. Modern Laravel applications running PHP 8.1 or newer should not expect this package to work.
- How do I send an SMS with TurboSMS from Laravel without this bundle?
- Create an app/Services/Sms/TurboSmsClient.php class that wraps Laravel's Http facade or a small SoapClient wrapper if SOAP is still mandatory. Read credentials from config('services.turbosms.*'), which pulls values from TURBOSMS_TOKEN and TURBOSMS_SENDER in your .env file. Add a TurboSmsMessage value object and a TurboSmsChannel notification channel, bind the client as a singleton in a service provider, and queue sends with ShouldQueue instead of calling the gateway inline.
- Is sunra/turbosms-bundle abandoned or actively maintained?
- It is abandoned. The last release was 2016-08-24, and the repository shows only 1 star, 0 dependents, and no community activity or production usage signal. There are no security patches, no PHP 8 compatibility updates, and no maintainer response to modern framework changes. Treat the code as a reference specification for the TurboSMS API contract rather than a dependency.
- Does sunra/turbosms-bundle work with PHP 8?
- No. The bundle predates PHP 8 and contains 2016-era Symfony2 code that has not been updated for modern PHP syntax, type handling, or removed functions. Running it on PHP 8.x is unsupported and likely to produce fatal errors or silent behavioral changes. Any Laravel project on PHP 8.1 or later should avoid it entirely.
- What are the best alternatives to sunra/turbosms-bundle for Laravel SMS?
- For general SMS delivery, Laravel's first-party notification channels for Twilio, Vonage, and MessageBird are well maintained and easier to test. If TurboSMS remains a required provider, check whether it now offers a REST or JSON v2 API and whether a maintained PHP SDK exists that you can wrap. Otherwise, implement a small native TurboSmsClient behind a Laravel notification channel, which is typically a 2 to 4 engineer-day effort including tests.
- How should I configure TurboSMS API credentials in Laravel?
- Store the token and sender ID in your .env file as TURBOSMS_TOKEN and TURBOSMS_SENDER, then expose them through config/services.php. Bind a TurboSmsClient singleton in a service provider and read credentials only via config('services.turbosms.*'), never directly from environment variables at runtime. This follows Laravel's configuration caching discipline and avoids the config.yml or parameters.yml credential anti-pattern common in 2016-era Symfony bundles.
- How do I test a TurboSMS integration in Laravel?
- Use Http::fake() to stub TurboSMS HTTP responses, or mock SoapClient if the SOAP gateway is unavoidable, then assert that your TurboSmsClient sends the expected recipients, body, sender, and unicode flag. Add feature tests that dispatch the queued notification and verify the channel calls the client with a TurboSmsMessage value object. Because sunra/turbosms-bundle is a Symfony bundle with container coupling, testing it inside Laravel would require bootstrapping Symfony services, which is another reason to reimplement the client natively.