devcodesms/devcode-sms-bundle

Symfony bundle for the DevCode SMS API. Send SMS messages and check your balance directly from your Symfony application.

Maintainers

Package info

github.com/devcodegroupe/dependency-devcode-sms-composer

Homepage

Issues

Type:symfony-bundle

pkg:composer/devcodesms/devcode-sms-bundle

Statistics

Installs: 0

Dependents: 0

Suggesters: 0

Stars: 0

dev-main 2026-04-01 17:32 UTC

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.

Packagist Version License: BSD-3-Clause PHP >= 8.1 Symfony ^6|^7

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

  1. Create an account at devcodesms.com
  2. Subscribe to an SMS plan
  3. Generate your key in the API Key section

Support

License

BSD-3-Clause © 2024 DevCode SMS