wrep / notificato
Takes care of push notifications in your PHP projects.
Installs: 283 361
Dependents: 1
Suggesters: 0
Security: 0
Stars: 224
Watchers: 12
Forks: 44
Open Issues: 5
Requires
- php: >=5.4
- ext-openssl: *
- ext-sockets: *
- ext-spl: *
- lib-openssl: *
- psr/log: 1.0.*
Requires (Dev)
- phpunit/phpunit: 4.4.*
- sami/sami: dev-master
Suggests
- wrep/notificato-symfony: Integrate Notificato into Symfony
Replaces
- wrep/notificare: *
README
Notificato takes care of push notifications in your PHP projects.
Italian: notificato รจ: participio passato English: notified
Why use Notificato instead of X?
Notificato has some advantages not all other PHP push libraries have:
- Supports multiple APNS certificates, so you can push to multiple Apps/Passbook Passes
- Takes excellent care of PHPs buggy SSL-sockets, handles quirks and error responses correctly
- Well tested with unit tests and nice Object-Oriented structure
Installation
Installation with Composer is recommended. Run the require command to add Notificato to your project:
composer require wrep/notificato
Suggestion: There is also a Notificato for Symfony bundle available, highly recommended for Symfony2 & Symfony3 users.
Getting started
- Take a look at the snippet below for a impression how Notificato works
- Read the documentation it will help you with common use cases
- Check out the API docs for a deeper understanding what Notificato is capable of
<?php // This imports the Composer autoloader require_once('vendor/autoload.php'); use Wrep\Notificato\Notificato; class GettingStarted { /** * This example sends one pushnotification with an alert to Apples production push servers */ public function sendOnePushNotification() { // First we get a Notificato instance and tell it what certificate to use as default certificate $notificato = new Notificato('./certificate.pem', 'passphrase-to-use'); // Now we get a fresh messagebuilder from Notificato // This message will be send to device with pushtoken 'fffff...' // it will automaticly be associated with the default certificate // and we will set the red badge on the App icon to 1 $message = $notificato->messageBuilder() ->setDeviceToken('ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff') ->setBadge(1) ->build(); // The message is ready, let's send it! // Be aware that this method is blocking and on failure Notificato will retry if necessary $messageEnvelope = $notificato->send($message); // The returned envelope contains usefull information about how many retries where needed and if sending succeeded echo $messageEnvelope->getFinalStatusDescription(); } /** * This example reads all unregistered devices from Apples feedback service */ public function readFeedbackService() { // First we get the a Notificato instance and tell it what certificate to use as default certificate $notificato = new Notificato('./certificate.pem', 'passphrase-to-use'); // Now read all "tuples" from the feedback service, be aware that this method is blocking $tuples = $notificato->receiveFeedback(); // The tuples contain information about what device unregistered and when it did unregister. // Don't forget to check if the device reregistered after the "invaidated at" date! foreach ($tuples as $tuple) { echo 'Device ' . $tuple->getDeviceToken() . ' invalidated at ' . $tuple->getInvalidatedAt()->format(\DateTime::ISO8601) . PHP_EOL; } } } $gettingStarted = new GettingStarted(); $gettingStarted->sendOnePushNotification(); $gettingStarted->readFeedbackService();
Contribute
We'll love contributions, read Contribute.md for some more info on what you can do and stuff that you should know if you want to help!
License & Credits
Notificato is released under the MIT License by Mathijs Kadijk, so feel free to use it in commercial and non-commercial projects.