PHP code example of zhb / nexmo-bundle

1. Go to this page and download the library: Download zhb/nexmo-bundle library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

zhb / nexmo-bundle example snippets


$message->setCallback('https://website.com/nexmo/delivery-receipt');



namespace App\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\Routing\Annotation\Route;
use Zhb\NexmoBundle\Message\TextMessage;
use Zhb\NexmoBundle\Provider\MailProvider;
use Zhb\NexmoBundle\Provider\ProviderInterface;
use Zhb\NexmoBundle\Provider\SmsProvider;

class SmsController extends AbstractController
{
    private $provider;

    private $emailProvider;

    private $smsProvider;

    public function __construct(ProviderInterface $provider, MailProvider $emailProvider, SmsProvider $smsProvider)
    {
        $this->provider = $provider; // provider defined in zhb_nexmo.yaml provider key.
        $this->emailProvider = $emailProvider;
        $this->smsProvider = $smsProvider;
    }

    /**
     * @Route("/sms/send", name="sms_send")
     */
    public function send()
    {
        // phone number must be in E.164 format
        $message = new TextMessage('+41798562466', 'Sms message content');
        
        // message setters overrides global config defined in config/packages/zhb_nexmo.yaml
        $message->setFrom('Tom Cruise');
        $message->setTtl(900000); // in milliseconds
        $message->setCallback('https://website.com/zhb-nexmo/delivery-receipt');
        $message->setClientRef('custom_sms_reference');

        $response = $this->provider->send($message);
        var_dump($response);

        $this->emailProvider->send($message);
        $this->smsProvider->send($message);
        
        ...
    }
}




namespace App\EventSubscriber;

use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Zhb\NexmoBundle\Event\DeliveryReceiptEvent;
use Zhb\NexmoBundle\Event\ZhbNexmoEvents;

class DeliveryReceiptSubscriber implements EventSubscriberInterface
{
    public function onSmsStatusChanged(DeliveryReceiptEvent $event)
    {
        $deliveryReceipt = $event->getDeliveryReceipt();
        
        ...
    }

    public static function getSubscribedEvents()
    {
        return [
           ZhbNexmoEvents::SMS_STATUS_CHANGED => 'onSmsStatusChanged',
        ];
    }
}