BotjaegerNexmoBundle with BotjaegerVonageBundle in composer.json and run:
composer require botjaeger/vonage-bundle
Nexmo_Client → Vonage_Client).nexmo service calls in your code with the new SDK methods. Example:
// Old (deprecated)
$client = $this->get('nexmo.client');
$client->message->send(...);
// New
$client = $this->get('vonage.client');
$client->sms()->send(...);
vonage.client service (using Vonage_Client). Override via config/packages/botjaeger_vonage.yaml:
services:
vonage.client:
arguments:
$key: '%env(VONAGE_KEY)%'
$secret: '%env(VONAGE_SECRET)%'
$applicationId: '%env(VONAGE_APP_ID)%'
message->send() → sms()->send()). Use the SDK docs as a reference.Vonage\Client\Events\MessageSent). Subscribe via Laravel’s event system:
// In a service provider
$this->app->make('vonage.client')->on('Vonage\Client\Events\MessageSent', function ($event) {
// Handle event
});
$mock = Mockery::mock('overload:Vonage\Client\VonageClient');
$mock->shouldReceive('sms()->send')->andReturn(new Vonage\SMS\Message());
Nexmo_* with Vonage_* in all code (e.g., Nexmo_Client → Vonage_Client).from → sender). Check the SDK changelog.Nexmo_Message::setType() may no longer exist. Use Vonage’s SMS or WhatsApp classes directly.NEXMO_* env vars. Use VONAGE_* (e.g., VONAGE_KEY, VONAGE_SECRET).ApplicationId, add to .env:
VONAGE_APP_ID=your_app_id
Vonage_Client via a decorator or middleware:
$client->extend(function ($client) {
$client->setDefaultSender('YourBrand');
});
Http\Middleware\HandleIncomingModelEvents to process Vonage webhooks (e.g., inbound-sms).$client = new Vonage\Client\VonageClient($key, $secret, [
'logLevel' => \Monolog\Logger::DEBUG,
]);
Vonage\Client\Exception\SDKException and handle gracefully.Nexmo_Client::call()), note that Vonage’s Voice API requires separate setup. See Vonage Voice SDK.How can I help you explore Laravel packages today?