khrizt / push-notiphications
Push notifications library for Apns and Fcm (or Gcm) for PHP
Installs: 7 354
Dependents: 0
Suggesters: 0
Security: 0
Stars: 3
Watchers: 2
Forks: 2
Open Issues: 0
Type:standalone
Requires
- php: >=7.1
- symfony/console: ~3.0
README
Push notifications library for Apns and Fcm for PHP
Using only cURL as library and Symfony Console for command-line commands this package supports Firebase Cloud Message (if you still use GCM, you can use it too) and APNS with HTTP/2 mode.
Requirements
- PHP 7.1+
- PHP Curl and OpenSSL modules
- cURL with HTTP/2 support (check this for Debian/Ubuntu users: https://serversforhackers.com/video/curl-with-http2-support)
Installation
composer require khrizt/push-notiphications
Usage example
FCM
use Khrizt\PushNotiphications\Client\Fcm; use Khrizt\PushNotiphications\Collection\Collection; use Khrizt\PushNotiphications\Model\Device; use Khrizt\PushNotiphications\Model\Fcm\Message as FcmMessage; $fcmMessage = new FcmMessage(); $fcmMessage->setBody($message) ->setTitle($title); $device = new Device($token); $collection = new Collection(); $collection->append($device); $client = new Fcm($apiKey); $responseCollection = $client->send($fcmMessage, $collection); foreach ($responseCollection as $response) { echo 'Status for notification sent to '.$response->getToken().' was '.($response->isOk() ? 'OK' : ' Error. Error message: '.$response->getErrorMessage()); }
APNS
use Khrizt\PushNotiphications\Client\Apns; use Khrizt\PushNotiphications\Collection\Collection; use Khrizt\PushNotiphications\Constants; use Khrizt\PushNotiphications\Model\Device; use Khrizt\PushNotiphications\Model\Apns\Message as ApnsMessage; $apnsMessage = new ApnsMessage(); $apnsMessage->setBody($message) ->setTopic($topic); $device = new Device($token); $collection = new Collection(); $collection->append($device); $client = new Apns(Constants::DEVELOPMENT, $certificate, $certificatePassphrase); $responseCollection = $client->send($apnsMessage, $collection); foreach ($responseCollection as $response) { echo 'Status for notification sent to '.$response->getToken().' was '.($response->isOk() ? 'OK' : '. Error message: '.$response->getErrorMessage()); }