devcodesms / devcode-sms-bundle
Symfony bundle for the DevCode SMS API. Send SMS messages and check your balance directly from your Symfony application.
Package info
github.com/devcodegroupe/dependency-devcode-sms-composer
Type:symfony-bundle
pkg:composer/devcodesms/devcode-sms-bundle
dev-main
2026-04-01 17:32 UTC
Requires
- php: >=8.1
- symfony/config: ^6.0|^7.0
- symfony/dependency-injection: ^6.0|^7.0
- symfony/http-client: ^6.0|^7.0
- symfony/http-kernel: ^6.0|^7.0
Requires (Dev)
- phpunit/phpunit: ^10.0|^11.0
- symfony/framework-bundle: ^6.0|^7.0
This package is auto-updated.
Last update: 2026-05-01 18:01:39 UTC
README
Symfony bundle for the DevCode SMS API.
Send SMS messages and check your balance directly from your Symfony application.
Requirements
- PHP >= 8.1
- Symfony 6.x or 7.x
Installation
composer require devcodesms/devcode-sms-bundle
Setup
1. Register the bundle
Add to config/bundles.php (Symfony Flex does this automatically):
return [ // ... DevcodeSms\Bundle\DevcodeSmsBundle::class => ['all' => true], ];
2. Add your API key to .env
DEVCODE_SMS_API_KEY=your_api_key_here
3. Create the config file
Create config/packages/devcode_sms.yaml:
devcode_sms: api_key: '%env(DEVCODE_SMS_API_KEY)%' # Optional: # base_url: 'https://devcodesms.com/developpeur' # timeout: 10
Usage
Inject the client into your service or controller
use DevcodeSms\Bundle\DevcodeSmsClient; use DevcodeSms\Bundle\Exception\DevcodeSmsException; class NotificationService { public function __construct(private DevcodeSmsClient $sms) {} public function sendWelcome(string $phone): void { try { $result = $this->sms->sendSms( sender: 'MyApp', phone: $phone, // International format: +237659373726 message: 'Bienvenue sur MyApp!', ); if ($result->isSuccess()) { // SMS accepted by the API } } catch (DevcodeSmsException $e) { // Network or API error echo $e->getMessage(); } } }
Send bulk SMS
$results = $this->sms->sendBulkSms( sender: 'MyApp', phones: ['+237659000001', '+237659000002', '+237659000003'], message: 'Offre flash — 20% de réduction aujourd\'hui!', ); foreach ($results as $result) { echo $result->isSuccess() ? '✅' : '❌'; echo ' ' . $result->getMessage() . PHP_EOL; }
Check balance
$balance = $this->sms->getBalance(); if ($balance->isSuccess()) { echo sprintf('Crédits restants : %d SMS', $balance->getBalance()); }
Configuration reference
# config/packages/devcode_sms.yaml devcode_sms: api_key: '%env(DEVCODE_SMS_API_KEY)%' # required base_url: 'https://devcodesms.com/developpeur' # optional timeout: 10 # optional, seconds (default: 10)
API Reference
DevcodeSmsClient
| Method | Returns | Description |
|---|---|---|
sendSms(string $sender, string $phone, string $message) |
SmsResponse |
Send a single SMS |
sendBulkSms(string $sender, array $phones, string $message) |
SmsResponse[] |
Send to multiple recipients |
getBalance() |
BalanceResponse |
Check remaining credits |
SmsResponse
| Method | Type | Description |
|---|---|---|
isSuccess() |
bool |
true when status is 200 |
getStatus() |
int |
HTTP-like status code |
getCode() |
string |
Short status string |
getMessage() |
string |
Human-readable message |
toArray() |
array |
Serialise to array |
BalanceResponse
| Method | Type | Description |
|---|---|---|
isSuccess() |
bool |
true when status is 200 |
getBalance() |
int |
Remaining SMS credits |
getMessage() |
string |
Human-readable message |
toArray() |
array |
Serialise to array |
DevcodeSmsException
| Method | Type | Description |
|---|---|---|
getMessage() |
string |
Human-readable description |
getStatusCode() |
int|null |
HTTP code or null for network errors |
getRawResponse() |
string|null |
Raw server response body |
Running tests
composer install ./vendor/bin/phpunit
Get your API key
- Create an account at devcodesms.com
- Subscribe to an SMS plan
- Generate your key in the API Key section
Support
- 📧 support@devcodesms.com
- 📞 (+237) 659 373 726
- 🌐 devcodesms.com
License
BSD-3-Clause © 2024 DevCode SMS