Create adapter
$adapter = new ApiAdapter();
Create message provider
$provider = new SMS1();
Pass provider to adapter
$adapter->setProvider($provider);`
Create gateway (set gateway type, pass adapter object)
$smsGateway = new SMSGateway(GatewayAbstract::TYPE_SMS, $adapter);`
Push message to gateway
try {
$smsGateway->push('555555555', 'Wiadomość 1');
} catch (ProviderException $exception) {
return $exception;`
}
- add logs
- add message to queue (RabbitMQ)
- consume queue items
- send message through provider
- check status
- save result to database