/Sms

SMS Component for PHP applications

Primary LanguagePHPMIT LicenseMIT

Sms Component License Build Status Scrutinizer Code Quality

An SMS component for PHP applications.

Installation

composer.json

{
    "require": {
        "yoqut/sms": "~2.0"
    }
}
php composer.phar install

or

php composer.phar require yoqut/sms

Usage

// Imports
use Yoqut\Component\Sms\Factory\SmsFactory;
use Yoqut\Component\Sms\Factory\GatewayFactory;
use Yoqut\Component\Sms\Gateway\Matcher;
use Yoqut\Component\Sms\Sender\Sender;

// Create a new SMS
$sms = SmsFactory::create();
$sms->setSender('Sender');
$sms->setRecipient('5550100');
$sms->setMessage('Message');

// Create a new gateway
// Provide host, port, username, password, service numbers (optional),
// prefix codes (optional) and configurations (optional)
$gateway = GatewayFactory::create(
    'localhost',
    2775,
    'username',
    'password',
    array(
        '5555', // Production
        '4444' // Development
    ),
    array('555')
);

// Array of gateways
$gateways = array($gateway);

// Create a new gateway matcher
$matcher = new Matcher($gateways);
$matchedGateway = $matcher->match($sms);

// Print the matched gateway
echo '<pre>';
print_r($matchedGateway);
echo '</pre>';

if ($matchedGateway) {
    // Use one of the gateway service numbers as a sender if needed
    $serviceNumbers = $gateway->getServiceNumbers();
    $sms->setSender($serviceNumbers[0]);

    // Send an SMS to the matched gateway
    $sender = new Sender();
    $messageId = $sender->send($sms, $matchedGateway);
    echo $messageId;
}

Tests

vendor/phpspec/phpspec/bin/phpspec run

License

MIT License

Authors

The component was created by Sukhrob Khakimov. See the list of contributors.