andreasnij / an-sms
A PHP library to send and receive SMS text messages through various gateways/providers.
Installs: 3 291
Dependents: 1
Suggesters: 0
Security: 0
Stars: 8
Watchers: 2
Forks: 2
Open Issues: 1
Requires
- php: >=8.1
- php-http/discovery: ^1.14
- psr/http-client: ^1.0
- psr/http-factory: ^1.0
- psr/http-message: ^1.1 || ^2.0
- psr/log: ^1.0 || ^2.0 || ^3.0
Requires (Dev)
- guzzlehttp/guzzle: ^7.4
- phpstan/phpstan: ^1.3
- phpunit/phpunit: ^10.0 | ^11.0
- squizlabs/php_codesniffer: ^3.6
- twilio/sdk: ^6.32
- vonage/client-core: ^4.0
Suggests
- twilio/sdk: Required to use the Twilio gateway
- vonage/client-core: Required to use the Vonage gateway
README
An extendable library for sending and receiving SMS messages.
Supported SMS gateways
You can add and use your own gateway. This library enables easy switching between different gateways.
Installation
Add the package as a requirement to your composer.json
:
$ composer require andreasnij/an-sms
If you want to use the 46elks, Cellsynt or Telenor SMS Pro gateway you also you need implementations of PSR-7: HTTP message interfaces, PSR-17: HTTP Factories and PSR-18: HTTP Client. A popular package for this is Guzzle. You can install it with:
$ composer require guzzlehttp/guzzle:^7.0 guzzlehttp/psr7:^2.0
You may choose to use any other implementations of the PSR interfaces though.
If you want to use the Twilio gateway you also need to install the Twilio SDK:
$ composer require twilio/sdk
If you want to use the Vonage gateway you also need to install the Vonage client:
$ composer require vonage/client-core
Usage
use AnSms\{ SmsTransceiver, Message\Message, Message\PremiumMessage, Gateway\CellsyntGateway }; $gateway = new CellsyntGateway('username', 'password'); $smsTransceiver = new SmsTransceiver($gateway); // Send SMS $message = Message::create('46700000000', 'Hello world!'); $smsTransceiver->sendMessage($message); // Receive SMS $receivedMessage = $smsTransceiver->receiveMessage($_GET); // Receive SMS delivery report $deliveryReport = $smsTransceiver->receiveDeliveryReport($_GET); // Send Premium SMS $premiumMessage = PremiumMessage::createFromIncomingMessage( 'Thanks for your payment!', 5, $receivedMessage ); $smsTransceiver->sendMessage($premiumMessage);
Upgrading
Please see UPGRADING for details.
Author
Andreas Nilsson (https://github.com/andreasnij)
License
This software is licensed under the MIT license - see the LICENSE file for details.