wrep/notificato

Takes care of push notifications in your PHP projects.

Installs: 6 188

Dependents: 1

Stars: 149

Watchers: 8

Forks: 21

Open Issues: 8

Language: PHP

1.1.2 2015-05-12 05:53 UTC

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:

  1. Supports multiple APNS certificates, so you can push to multiple Apps/Passbook Passes
  2. Takes excellent care of PHPs buggy SSL-sockets, handles quirks and error responses correctly
  3. 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

Alternatives: There is also a Notificato for Symfony2 bundle available, highly recommended for Symfony2 users.

Getting started

  1. Take a look at the snippet below for a impression how Notificato works
  2. Read the documentation it will help you with common use cases
  3. 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.